From 6f8aeb236725f673f199bce7a6f3942eb56a8318 Mon Sep 17 00:00:00 2001 From: HampusM Date: Sat, 2 Mar 2024 12:00:01 +0100 Subject: feat(ecs): add event trait --- ecs/src/event.rs | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 ecs/src/event.rs (limited to 'ecs/src/event.rs') diff --git a/ecs/src/event.rs b/ecs/src/event.rs new file mode 100644 index 0000000..0cf6da7 --- /dev/null +++ b/ecs/src/event.rs @@ -0,0 +1,24 @@ +use std::any::TypeId; +use std::fmt::Debug; +use std::hash::Hash; + +pub trait Event: Debug + 'static +{ + fn id(&self) -> Id; +} + +/// The ID of a [`Event`]. +#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] +pub struct Id +{ + inner: TypeId, +} + +impl Id +{ + /// Returns the id of a [`Event`]; + pub fn of() -> Self + { + Self { inner: TypeId::of::() } + } +} -- cgit v1.2.3-18-g5258