fn main() { struct Unit { kind: i32, hp: i32, x: f32, y: f32, name: Vec } impl Default for Unit { fn default() -> Self { Self { kind: 0, hp: 100, x: 0.0, y: 0.0, name: Vec::new() } } } let scout = Unit { kind: 2, x: 1.5, ..Unit::default() }; let mut selected = Unit::default(); let mut log: Vec> = Vec::new(); assert_eq!((scout.kind, scout.hp, scout.x, scout.y, scout.name.len()), (2,100,1.5,0.0,0)); assert_eq!(selected.hp,100); selected.hp=1; log.push(vec![]); assert_eq!((selected.hp,log.len()),(1,1)); }