1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
use node::Node;

#[derive(Clone, Debug)]
pub struct System {
	nodes: Vec<Node>,
}

impl System {
	pub fn new() -> Result<System, &'static str> {
		let system: System = Default::default();
		system.init()
	}

	fn init(mut self) -> Result<Self, &'static str> {
		// TODO: popolate Nodes
		for i in 0..4096 {
			match Node::new(i) {
				Ok(n) => {
					self.nodes.push(n);
				}
				Err(_) => {
					break;
				}
			}
		}

		Ok(self)
	}

	pub fn nodes(&self) -> Vec<Node> {
		self.nodes.clone()
	}
}

impl Default for System {
	fn default() -> System {
		System { 
			nodes: Vec::new(),
		}
	}
}