1use byteorder_cursor::{BigEndian, BufferTooSmall, Cursor, LittleEndian};
2
3fn main() -> Result<(), BufferTooSmall> {
4 let mut buffer = [0u8; 16];
5 let mut cursor = Cursor::new(&mut buffer[..]);
6
7 cursor.write_u8(1);
8 cursor.write_u16::<BigEndian>(5);
9 cursor.write_u32::<LittleEndian>(16);
10 cursor.write_bytes(&[1, 2, 3, 4, 5]);
11
12 println!("Remaining space in cursor is {} bytes", cursor.remaining());
13 cursor.set_position(0);
14 cursor.check_remaining(7)?;
15
16 let x = cursor.read_u8();
17 let y = cursor.read_u16::<BigEndian>();
18 let z = cursor.read_u32::<LittleEndian>();
19
20 let mut w = [0u8; 5];
21 cursor.read_bytes(&mut w);
22
23 println!("Read-back from buffer: {x}, {y}, {z}, {w:?}");
24 println!("Cursor is now at position {}", cursor.position());
25
26 Ok(())
27}