Skip to content
Snippets Groups Projects
Commit 856db3e2 authored by Jeremy Soller's avatar Jeremy Soller
Browse files

WIP: Collection

parent 6d5be41c
No related branches found
No related tags found
No related merge requests found
use collections::Vec;
use system::error::Result;
use super::{ExNode, FileSystem, Node};
/// A collection of a Node and its associated ExNodes
pub struct Collection {
pub node: (u64, Node),
pub ex_nodes: Vec<(u64, ExNode)>
}
impl Collection {
pub fn load(fs: &mut FileSystem, block: u64) -> Result<Collection> {
let node = try!(fs.node(block));
let mut next = node.1.next;
let mut ex_nodes = Vec::new();
while next > 0 {
let ex_node = try!(fs.ex_node(next));
next = ex_node.1.next;
ex_nodes.push(ex_node);
}
Ok(Collection {
node: node,
ex_nodes: ex_nodes,
})
}
}
......@@ -15,6 +15,7 @@ extern crate collections;
extern crate system;
pub use self::collection::Collection;
pub use self::disk::Disk;
pub use self::ex_node::ExNode;
pub use self::extent::Extent;
......@@ -22,6 +23,7 @@ pub use self::filesystem::FileSystem;
pub use self::header::Header;
pub use self::node::Node;
pub mod collection;
pub mod disk;
pub mod ex_node;
pub mod extent;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment