flatty-portable 0.1.0-alpha.5

Flatty portable trait and primitives
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
use crate::le;
use core::mem::align_of_val;
use flatty_base::{traits::*, utils::alloc::AlignedBytes, vec::FlatVec};

#[test]
fn vec() {
    let mut bytes = AlignedBytes::new(2 + 3 * 4, 1);
    let flat_vec = FlatVec::<le::I32, le::U16>::default_in_place(&mut bytes).unwrap();

    flat_vec.push(le::I32::from(0)).unwrap();
    flat_vec.push(le::I32::from(1)).unwrap();
    flat_vec.push(le::I32::from(2)).unwrap();
    assert!(flat_vec.push(le::I32::from(3)).is_err());

    assert_eq!(FlatVec::<le::I32, le::U16>::ALIGN, 1);
    assert_eq!(align_of_val(flat_vec), 1);
}