use veil::Redact; #[derive(Redact)] pub struct Address { #[redact(partial)] line1: String, #[redact(partial)] line2: String, #[redact] house_or_flat_number: Option, #[redact] postcode: String, #[redact(partial)] city: String, } #[derive(Redact)] pub struct Person { #[redact(partial)] first_name: String, #[redact(partial)] last_name: String, address: Address, } #[derive(Redact)] pub struct Vehicle { #[redact(partial)] license_plate: String, owner: Person, } fn main() { println!( "{:#?}", Vehicle { license_plate: "ABC123".to_string(), owner: Person { first_name: "John".to_string(), last_name: "Doe".to_string(), address: Address { line1: "123 Main St".to_string(), line2: "Apt 1".to_string(), house_or_flat_number: Some(1), postcode: "12345".to_string(), city: "New York".to_string(), } } } ); }