From bed274c683ffd18a55282247d47780c4f1bf84b5 Mon Sep 17 00:00:00 2001 From: troido Date: Fri, 7 Feb 2020 15:05:59 +0100 Subject: all entity construction now uses new templates --- src/oldassemblage.rs | 63 ---------------------------------------------------- 1 file changed, 63 deletions(-) delete mode 100644 src/oldassemblage.rs (limited to 'src/oldassemblage.rs') diff --git a/src/oldassemblage.rs b/src/oldassemblage.rs deleted file mode 100644 index a81ce82..0000000 --- a/src/oldassemblage.rs +++ /dev/null @@ -1,63 +0,0 @@ - - -use std::any::Any; - - -#[macro_export] -macro_rules! assemblage { - ($name:ident { $($arg:ident : $argt:ident ),* } ; $( $comp:expr ),* ) => { - #[derive(Debug, Clone, Default)] - pub struct $name {$( - pub $arg : $argt - )* } - impl Assemblage for $name { - fn build<'a>(&self, mut builder: specs::EntityBuilder<'a>) -> specs::EntityBuilder<'a>{ - $( - let $arg = &self.$arg; - )* - $( - builder = specs::Builder::with(builder, $comp); - )* - builder - } - - #[allow(unused_variables, unused_mut)] - fn init_from_json(&mut self, mut args: Vec, kwargs: std::collections::HashMap) { - $( - if args.len() > 0 { - let val = args.remove(0); - if let Some(actual_val) = super::unpack_json!($argt, val) { - self.$arg = actual_val; - } - } - )* - $( - if let Some(val) = kwargs.get(stringify!($arg)) { - if let Some(actual_val) = super::unpack_json!($argt, val) { - self.$arg = actual_val; - } - } - )* - } - } - } -} - -#[macro_export] -macro_rules! unpack_json { - (String, $val: ident) => { - if let Some(txt) = $val.as_str(){ - Some(txt.to_string()) - } else { - None - } - } -} - - -pub trait Assemblage: Send + Sync + Any { - fn build<'a>(&self, builder: specs::EntityBuilder<'a>) -> specs::EntityBuilder<'a>; - fn init_from_json(&mut self, args: Vec, kwargs: std::collections::HashMap); -} - - -- cgit