2025-02-04 05:10:53 -05:00
|
|
|
pub trait Component: Sized + 'static {
|
|
|
|
fn update(&mut self, delta_time: f32);
|
|
|
|
fn serialize(&self) -> Vec<u8>;
|
2025-03-22 18:19:01 -04:00
|
|
|
fn deserialize(data: &[u8; 6]) -> Self;
|
2025-02-04 05:10:53 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
pub trait Entity: Sized {
|
|
|
|
fn add_component<C: Component>(&mut self, component: C);
|
|
|
|
fn remove_component<C: Component>(&mut self);
|
|
|
|
fn get_component<C: Component>(&self) -> Option<&C>;
|
|
|
|
fn serialize(&self) -> Vec<u8>;
|
2025-03-22 18:19:01 -04:00
|
|
|
fn deserialize(data: &[u8; 6]) -> Self;
|
|
|
|
}
|