use lz4::{decompress};
#[derive(Clone, Copy)]
pub struct Bitmap<'a> {
width: u16,
height: u16,
data: &'a [u8],
}
impl<'a> Bitmap<'a> {
pub fn width(&self) -> u16 {
self.width
}
pub fn height(&self) -> u16 {
self.height
}
pub fn len(&self) -> u32 {
self.width as u32 * self.height as u32 * 4
}
pub unsafe fn construct(data: &'a [u8], width: u16, height: u16) -> Bitmap<'a> {
Bitmap { width: width, height: height, data: data }
}
pub fn data(&self, out: &mut [u8]) {
assert_eq!(out.len(), self.len() as usize);
let len = decompress(self.data, out);
assert_eq!(len, Ok(self.len() as usize));
}
}