Skip to main content

basic/
basic.rs

1use zon_format::{ZonWriter, ZonReader};
2
3fn main() {
4    println!("Running ZON Basic Example...");
5
6    // 1. Write
7    let mut writer = ZonWriter::new();
8    let text_off = writer.write_string("Hello Zero-Copy World!");
9    let num_off = writer.write_u32(42);
10    
11    writer.set_root(text_off);
12    
13    println!("Written {} bytes.", writer.len());
14    
15    // 2. Read
16    let buffer = writer.as_bytes();
17    let reader = ZonReader::new(buffer).expect("Buffer verification failed");
18    
19    let root = reader.read_u32(8).unwrap();
20    let text = reader.read_string(root).unwrap();
21    let num = reader.read_u32(num_off).unwrap();
22    
23    println!("Read Root String: {}", text);
24    println!("Read Number: {}", num);
25    
26    assert_eq!(text, "Hello Zero-Copy World!");
27    assert_eq!(num, 42);
28    
29    println!("Success!");
30}