imbuf 0.3.3

Image buffers that abstract over underlying storage (Vec, Arc, or custom backends). Features copy-on-write semantics for efficient memory usage.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
use std::num::NonZeroU32;

use imbuf::Image;

#[test]
fn flatten() {
    let two = NonZeroU32::new(2).unwrap();
    let input = vec![[0, 1, 2], [3, 4, 5], [6, 7, 8], [9, 10, 11]];
    let image = Image::<[u8; 3], 1>::new_vec(input.clone(), two, two);
    let buffers = image.buffer();
    assert_eq!(buffers, &input);
    assert_eq!(image.buffer_flat(), (0..12).collect::<Vec<_>>());
}