1use dimension_shiftable_buffer::DimensionShiftableBuffer;
2
3fn example_u8()
4{
5 let mut dsb = DimensionShiftableBuffer::<u8>::new(vec![], 2).unwrap();
7 dsb.push(&[0u8, 1]).unwrap();
9 dsb.push(&[2u8, 3]).unwrap();
11 dsb.append(&[4u8, 5, 6, 7, 8, 9, 10, 11]).unwrap();
13 for index in 0..dsb.len().unwrap()
14 {
15 assert_eq!(dsb.get(index).unwrap(), &[index as u8 * 2, index as u8 * 2 + 1]);
17 }
18 dsb.shift_dimension(3).unwrap();
20 dsb.push(&[12u8, 13, 14]).unwrap();
22 assert_eq!(dsb.get(0).unwrap(), &[0u8, 1, 2]);
24 assert_eq!(dsb.get(1).unwrap(), &[3u8, 4, 5]);
25 assert_eq!(dsb.get(2).unwrap(), &[6u8, 7, 8]);
26 assert_eq!(dsb.get(3).unwrap(), &[9u8, 10, 11]);
27 assert_eq!(dsb.get(4).unwrap(), &[12u8, 13, 14]);
28 let linear_slice = dsb.as_slice();
30 assert_eq!(linear_slice, &[0u8, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]);
31}
32
33fn main()
34{
35 example_u8();
36}