use crate::{ commands::{wrap_command, wrap_origin_accessors}, macros::{wrap_fields, wrap_functions}, }; use servicepoint::{BrightnessGrid, BrightnessGridCommand, Origin}; use std::ptr::NonNull; wrap_command!(BrightnessGrid); wrap_fields!(BrightnessGridCommand; prop grid: BrightnessGrid { get mut; set move; }; ); wrap_origin_accessors!(BrightnessGridCommand); wrap_functions!(associate BrightnessGridCommand; /// Set the brightness of individual tiles in a rectangular area of the display. /// /// The passed [BrightnessGrid] gets consumed. /// /// Returns: a new [BrightnessGridCommand] instance. fn new( grid: move NonNull, origin_x: val usize, origin_y: val usize ) -> move NonNull { BrightnessGridCommand { grid, origin: Origin::new(origin_x, origin_y), } }; /// Moves the provided [BrightnessGrid] into a new [BrightnessGridCommand], /// leaving other fields as their default values. fn from_grid(grid: move NonNull) -> move NonNull { grid.into() }; );