diff options
| author | troido <troido@protonmail.com> | 2020-02-07 15:05:59 +0100 |
|---|---|---|
| committer | troido <troido@protonmail.com> | 2020-02-07 15:05:59 +0100 |
| commit | bed274c683ffd18a55282247d47780c4f1bf84b5 (patch) | |
| tree | 6e20e6ba099da68354e30b7f7450019188165159 /src/oldassemblage.rs | |
| parent | 70db58f688f0dbdd69231da570cf8dbb54e5ca81 (diff) | |
all entity construction now uses new templates
Diffstat (limited to 'src/oldassemblage.rs')
| -rw-r--r-- | src/oldassemblage.rs | 63 |
1 files changed, 0 insertions, 63 deletions
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<serde_json::Value>, kwargs: std::collections::HashMap<String, serde_json::Value>) { - $( - 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<serde_json::Value>, kwargs: std::collections::HashMap<String, serde_json::Value>); -} - - |
