diff --git a/Cargo.lock b/Cargo.lock index 3a2b21ade..63d3944ac 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2,24 +2,6 @@ # It is not intended for manual editing. version = 3 -[[package]] -name = "autocfg" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" - [[package]] name = "eda4eda" version = "0.1.0" -dependencies = [ - "slab", -] - -[[package]] -name = "slab" -version = "0.4.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" -dependencies = [ - "autocfg", -] diff --git a/Cargo.toml b/Cargo.toml index ec6a31246..4c11a14fc 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -6,4 +6,3 @@ edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -slab = "0.4.8" diff --git a/src/builder/arith.rs b/src/builder/arith.rs deleted file mode 100644 index 47bae5002..000000000 --- a/src/builder/arith.rs +++ /dev/null @@ -1,12 +0,0 @@ -use super::ctx::Reference; - -enum Opcode { - Add, - Mul, -} - -pub struct Expr { - opcode: Opcode, - operands: Vec -} - diff --git a/src/builder/context.rs b/src/builder/context.rs deleted file mode 100644 index 3d36b2b68..000000000 --- a/src/builder/context.rs +++ /dev/null @@ -1,75 +0,0 @@ -use slab; - -use crate::{Data, Module}; - -use super::data::Expr; - -pub enum Element { - Module(Module), - Data(Data), - Expr(Expr), -} - -impl Element { - - fn set_key(&mut self, key: usize) { - match self { - Element::Module(module) => { module.key = key; } - _ => panic!("Element::set_key: unexpected element type"), - } - } - -} - -pub struct Context { - slab: slab::Slab, -} - -pub trait IsElement { - fn into_reference(key: usize) -> Reference; -} - -macro_rules! register_element { - ($name:ident) => { - - impl Into for $name { - fn into(self) -> Element { - Element::$name(self) - } - } - - impl IsElement for $name { - fn into_reference(key: usize) -> Reference { - Reference::Module(key) - } - } - - }; -} - -register_element!(Module); -register_element!(Data); - - -pub enum Reference { - Module(usize), - Data(usize), - Expr(usize), -} - -impl Context { - - pub fn new() -> Self { - Context { - slab: slab::Slab::new(), - } - } - - pub fn insert + IsElement>(&mut self, elem: T) -> Reference { - let key = self.slab.insert(elem.into()); - self.slab.get_mut(key).unwrap().set_key(key); - T::into_reference(key) - } - -} - diff --git a/src/builder/data.rs b/src/builder/data.rs index b724496fd..e4acb6cee 100644 --- a/src/builder/data.rs +++ b/src/builder/data.rs @@ -1,23 +1,4 @@ -use crate::Context; - -use super::ctx::Reference; - pub struct Data { - parent: Option, - name: String, bits: usize, } -impl Data { - - pub fn new(ctx: &mut Context, name: &str, bits: usize) -> Reference { - let res = Data { - parent: None, - name: name.to_string(), - bits, - }; - ctx.insert(res) - } - -} - diff --git a/src/builder/mod.rs b/src/builder/mod.rs index 1ba383f1a..31f314761 100644 --- a/src/builder/mod.rs +++ b/src/builder/mod.rs @@ -1,5 +1,2 @@ -pub mod data; -pub mod module; -pub mod context; -pub mod arith; - +mod data; +mod module; diff --git a/src/builder/module.rs b/src/builder/module.rs index 0563bcf6a..3c25b61b1 100644 --- a/src/builder/module.rs +++ b/src/builder/module.rs @@ -1,26 +1,8 @@ -use super::{ctx::{Context, Reference}, data::Data}; +use super::data::Data; -pub struct Module { - pub(crate) key: usize, - name: String, +struct Module { subscriber: Vec, inputs: Vec, outputs: Vec, } -impl Module { - - pub fn new(ctx: &mut Context, name: &str, inputs: Vec) -> Reference { - let mut res = Module { - key: 0, - name: name.to_string(), - subscriber: Vec::new(), - inputs, - outputs: Vec::new(), - }; - ctx.insert(res) - } - - -} - diff --git a/src/lib.rs b/src/lib.rs index b8485fb28..a67eea88e 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,6 +1,2 @@ pub mod builder; -pub use builder::module::Module; -pub use builder::data::Data; -pub use builder::ctx::Context; -