From e4818dd4f0a57a2c9af8859253f570607f64bb12 Mon Sep 17 00:00:00 2001 From: HampusM Date: Tue, 8 Apr 2025 16:28:46 +0200 Subject: refactor(ecs): store components as dyn Any --- ecs/src/component/storage/archetype.rs | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) (limited to 'ecs/src/component/storage') diff --git a/ecs/src/component/storage/archetype.rs b/ecs/src/component/storage/archetype.rs index 8d48e13..58facc9 100644 --- a/ecs/src/component/storage/archetype.rs +++ b/ecs/src/component/storage/archetype.rs @@ -1,9 +1,10 @@ +use std::any::Any; use std::hash::{DefaultHasher, Hash, Hasher}; use std::slice::Iter as SliceIter; use hashbrown::HashMap; -use crate::component::{Component, Metadata as ComponentMetadata}; +use crate::component::Metadata as ComponentMetadata; use crate::lock::Lock; use crate::uid::{Kind as UidKind, Uid}; use crate::util::HashMapExt; @@ -209,26 +210,19 @@ impl Entity #[derive(Debug)] pub struct EntityComponent { - name: &'static str, - component: Lock>, + component: Lock>, } impl EntityComponent { - pub fn new(component: Box, component_name: &'static str) -> Self + pub fn new(component: Box, component_name: &'static str) -> Self { Self { - name: component_name, component: Lock::new(component, component_name), } } - pub fn name(&self) -> &str - { - self.name - } - - pub fn component(&self) -> &Lock> + pub fn component(&self) -> &Lock> { &self.component } -- cgit v1.2.3-18-g5258