use crate::{ commands::wrap_command, compression_code::CompressionCode, containers::bitmap::Bitmap, macros::wrap_object, }; use servicepoint::Origin; use std::sync::Arc; wrap_object!(BitmapCommand); wrap_command!(BitmapCommand); #[uniffi::export] impl BitmapCommand { #[uniffi::constructor] pub fn new( offset_x: u64, offset_y: u64, bitmap: &Arc, compression: CompressionCode, ) -> Arc { let origin = Origin::new(offset_x as usize, offset_y as usize); let bitmap = bitmap.read().clone(); let compression = compression.into(); let actual = servicepoint::BitmapCommand { origin, bitmap, compression, }; Self::internal_new(actual) } }