pub trait Component: Sized + 'static { fn update(&mut self, delta_time: f32); fn serialize(&self) -> Vec; fn deserialize(data: &[u8;6]) -> Self; } pub trait Entity: Sized { fn add_component(&mut self, component: C); fn remove_component(&mut self); fn get_component(&self) -> Option<&C>; fn serialize(&self) -> Vec; fn deserialize(data: &[u8;6]) -> Self; }