Documentation
mod generics;
mod impl_core;
mod impl_buffer;

pub use self::generics::*;
pub use self::impl_core::*;
pub use self::impl_buffer::*;

#[test]
fn test_image_buffer() {
    use {ScalarVal, Gray8U, GrayVal8U};

    let mut img = ImageBufferVal::<Gray8U>::new_with_size(2, 2);
    println!("{:?}", img.get_pixel(1, 1));

    assert_eq!(img.get_pixel(1, 1).unwrap(), GrayVal8U::new(ScalarVal(0)));
    for y in 0..2 {
        for x in 0..2 {
            let linear_idx = (y * 2 + x) as u8;
            img.set_pixel(x, y, GrayVal8U::new(ScalarVal(linear_idx)));
        }
    }
    let mut raw_buffer = [0u8; 4];
    img.write_into_raw_buffer(&mut raw_buffer);
    assert_eq!(raw_buffer, [0u8, 1, 2, 3]);
}