39 lines
1.1 KiB
Rust
39 lines
1.1 KiB
Rust
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<BrightnessGrid>,
|
|
origin_x: val usize,
|
|
origin_y: val usize
|
|
) -> move NonNull<BrightnessGridCommand> {
|
|
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<BrightnessGrid>) -> move NonNull<BrightnessGridCommand> {
|
|
grid.into()
|
|
};
|
|
);
|