use crate::{ commands::{wrap_command, wrap_origin_accessors}, macros::{wrap_fields, wrap_functions}, }; use servicepoint::{Bitmap, BitmapCommand, CompressionCode, Origin}; use std::ptr::NonNull; wrap_command!(Bitmap); wrap_fields!(BitmapCommand; prop bitmap: Bitmap { get mut; set move; }; prop compression: CompressionCode { get; set; }; ); wrap_origin_accessors!(BitmapCommand); wrap_functions!(associate BitmapCommand; /// Sets a window of pixels to the specified values. /// /// The passed [Bitmap] gets consumed. /// /// Returns: a new [BitmapCommand] instance. fn new( bitmap: move NonNull, origin_x: val usize, origin_y: val usize, compression: val CompressionCode, ) -> move NonNull { BitmapCommand { bitmap, origin: Origin::new(origin_x, origin_y), compression, } }; /// Move the provided [Bitmap] into a new [BitmapCommand], /// leaving other fields as their default values. /// /// Rust equivalent: `BitmapCommand::from(bitmap)` fn from_bitmap(bitmap: move NonNull) -> move NonNull { bitmap.into() }; );