summaryrefslogtreecommitdiff
path: root/src/oldassemblage.rs
diff options
context:
space:
mode:
authortroido <troido@protonmail.com>2020-02-07 15:05:59 +0100
committertroido <troido@protonmail.com>2020-02-07 15:05:59 +0100
commitbed274c683ffd18a55282247d47780c4f1bf84b5 (patch)
tree6e20e6ba099da68354e30b7f7450019188165159 /src/oldassemblage.rs
parent70db58f688f0dbdd69231da570cf8dbb54e5ca81 (diff)
all entity construction now uses new templates
Diffstat (limited to 'src/oldassemblage.rs')
-rw-r--r--src/oldassemblage.rs63
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>);
-}
-
-