summaryrefslogtreecommitdiff
path: root/src/module.rs
diff options
context:
space:
mode:
authortom barrett <spalf0@gmail.com>2018-04-12 04:33:23 -0500
committertom barrett <spalf0@gmail.com>2018-04-12 04:33:23 -0500
commit573ba69d810914c153a578747414b3d631e61bbc (patch)
tree4ce164db9d28ede9778d75ddb4f6922ea1dc1a91 /src/module.rs
parentab797e7f30e5e8913faf73516346129b9a620550 (diff)
completely restructured code and fixed navigation bug
Diffstat (limited to 'src/module.rs')
-rw-r--r--src/module.rs22
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);