diff options
author | tom barrett <spalf0@gmail.com> | 2018-04-12 04:33:23 -0500 |
---|---|---|
committer | tom barrett <spalf0@gmail.com> | 2018-04-12 04:33:23 -0500 |
commit | 573ba69d810914c153a578747414b3d631e61bbc (patch) | |
tree | 4ce164db9d28ede9778d75ddb4f6922ea1dc1a91 /src/module.rs | |
parent | ab797e7f30e5e8913faf73516346129b9a620550 (diff) |
completely restructured code and fixed navigation bug
Diffstat (limited to 'src/module.rs')
-rw-r--r-- | src/module.rs | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/src/module.rs b/src/module.rs index 8d9a361..800f4d7 100644 --- a/src/module.rs +++ b/src/module.rs @@ -1,7 +1,21 @@ -#[derive(Serialize, Deserialize, Debug, Clone)] -pub enum Module { +use downcast::Any; + +pub trait Module : Any { + fn box_clone(&self) -> Box<Module>; +} + +impl Clone for Box<Module> { + fn clone(&self) -> Box<Module> { + self.box_clone() + } +} + +#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, Hash)] +pub enum ModuleType { + Mining, + Engines, Dashboard, Navigation, - Engines, - Mining, } + +downcast!(Module); |