use crate::{containers::ByteSlice, macros::wrap};
use servicepoint::{
Cp437Grid, Cp437GridCommand, DataRef, Grid, Origin, Packet,
};
use std::ptr::NonNull;
wrap! {
Cp437Grid {
derives: crate::containers::derive_container, crate::containers::derive_grid[u8];
functions:
fn new(width: val usize, height: val usize) -> move NonNull<Cp437Grid> {
Cp437Grid::new(width, height)
};
fn load(width: val usize, height: val usize, data: slice ByteSlice) -> move_some *mut Cp437Grid {
Cp437Grid::load(width, height, data)
};
methods:
fn try_into_packet(move grid, x: val usize, y: val usize) -> move_ok *mut Packet {
Packet::try_from(Cp437GridCommand {
grid,
origin: Origin::new(x, y),
})
};
fn data_ref_mut(mut instance) -> slice ByteSlice;
}
}