use std::fmt; pub type EntityId = u32; #[derive(Clone, Copy, PartialEq, Eq, Hash, Debug)] pub struct Location { pub x: i32, pub y: i32, } #[derive(Clone, Copy, PartialEq, Eq, Hash, Debug)] pub struct Entity { pub id: EntityId, pub loc: Location } impl fmt::Display for Location { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { write!(f, "({}, {})", self.x, self.y) } }