|
@@ -1,65 +0,0 @@
|
|
|
-
|
|
|
-struct Nodes<T> {
|
|
|
- data: Vec<DataNode<T>>
|
|
|
-}
|
|
|
-
|
|
|
-impl<T> Nodes<T> {
|
|
|
- fn new() -> Nodes<T> {
|
|
|
- Nodes {
|
|
|
- data: Vec::new()
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- fn add_node(&mut self, member: DataNode<T>) {
|
|
|
- self.data.push(member)
|
|
|
- }
|
|
|
-
|
|
|
- fn is_empty(&mut self) -> bool {
|
|
|
- self.data.len() == 0
|
|
|
- }
|
|
|
-
|
|
|
- fn pop_node(&mut self) -> Option<DataNode<T>>{
|
|
|
- self.data.pop()
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-struct DataNode<T> {
|
|
|
- key: String,
|
|
|
- value: Option<T>
|
|
|
-}
|
|
|
-
|
|
|
-impl<T> DataNode<T> {
|
|
|
- fn new(t_key: &str, t_value: Option<T>) -> DataNode<T>{
|
|
|
- DataNode {
|
|
|
- key: String::from(t_key),
|
|
|
- value: Option::from(t_value)
|
|
|
- }
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-
|
|
|
-fn main() {
|
|
|
- let mut n = Nodes::new();
|
|
|
-
|
|
|
- let d = DataNode::new("Key1", Option::from("Hello"));
|
|
|
- let c = DataNode::new("Key2", Option::from("World"));
|
|
|
-
|
|
|
- n.add_node(d);
|
|
|
- n.add_node(c);
|
|
|
-
|
|
|
-
|
|
|
- while !n.is_empty() {
|
|
|
- let dd = n.pop_node();
|
|
|
- match dd {
|
|
|
- None => println!("Nodes not initialized",),
|
|
|
- Some(node) => {
|
|
|
- match node.value {
|
|
|
- None =>println!("Key {} Value: NULL", node.key),
|
|
|
- Some(value) => println!("Key {} Value: {:?}", node.key, value),
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-
|