use postbag::{from_full_slice, from_slim_slice, to_full_vec, to_slim_vec};
use serde::{Deserialize, Serialize};
#[derive(Serialize, Deserialize, Debug, PartialEq)]
struct Person {
name: String,
age: u32,
active: bool,
}
fn main() {
let person = Person { name: "Alice".to_string(), age: 30, active: true };
println!("=== Testing new convenience APIs ===");
let full_bytes = to_full_vec(&person).unwrap();
println!("Full serialization: {} bytes", full_bytes.len());
let slim_bytes = to_slim_vec(&person).unwrap();
println!("Slim serialization: {} bytes", slim_bytes.len());
let person_from_full: Person = from_full_slice(&full_bytes).unwrap();
println!("Deserialized from full: {:?}", person_from_full);
assert_eq!(person, person_from_full);
let person_from_slim: Person = from_slim_slice(&slim_bytes).unwrap();
println!("Deserialized from slim: {:?}", person_from_slim);
assert_eq!(person, person_from_slim);
println!("✓ All new convenience functions work correctly!");
println!("✓ Space saved with slim: {} bytes", full_bytes.len() - slim_bytes.len());
}