move node data to separate mod
This commit is contained in:
parent
771aa867c1
commit
bce88797f4
20
src/lib.rs
20
src/lib.rs
|
@ -6,27 +6,11 @@
|
|||
#[cfg(test)] #[macro_use] extern crate quickcheck;
|
||||
extern crate derive_more;
|
||||
|
||||
|
||||
mod tree;
|
||||
mod node_data;
|
||||
|
||||
pub use tree::Tree;
|
||||
|
||||
/// Node metadata.
|
||||
#[repr(C)]
|
||||
#[derive(Debug)]
|
||||
pub struct NodeData {
|
||||
subtree_commitment: [u8; 32],
|
||||
start_time: u32,
|
||||
end_time: u32,
|
||||
start_target: u32,
|
||||
end_target: u32,
|
||||
start_sapling_root: [u8; 32],
|
||||
end_sapling_root: [u8; 32],
|
||||
subtree_total_work: u64,
|
||||
start_height: u32,
|
||||
end_height: u32,
|
||||
shielded_tx: u64,
|
||||
}
|
||||
pub use node_data::NodeData;
|
||||
|
||||
#[derive(Debug, derive_more::Display)]
|
||||
pub enum Error {
|
||||
|
|
|
@ -0,0 +1,37 @@
|
|||
/// Node metadata.
|
||||
#[repr(C)]
|
||||
#[derive(Debug)]
|
||||
pub struct NodeData {
|
||||
pub subtree_commitment: [u8; 32],
|
||||
pub start_time: u32,
|
||||
pub end_time: u32,
|
||||
pub start_target: u32,
|
||||
pub end_target: u32,
|
||||
pub start_sapling_root: [u8; 32],
|
||||
pub end_sapling_root: [u8; 32],
|
||||
pub subtree_total_work: u64,
|
||||
pub start_height: u32,
|
||||
pub end_height: u32,
|
||||
pub shielded_tx: u64,
|
||||
}
|
||||
|
||||
impl NodeData {
|
||||
pub fn combine(left: &NodeData, right: &NodeData) -> NodeData {
|
||||
NodeData {
|
||||
// TODO: hash children
|
||||
subtree_commitment: [0u8; 32],
|
||||
start_time: left.start_time,
|
||||
end_time: right.end_time,
|
||||
start_target: left.start_target,
|
||||
end_target: right.end_target,
|
||||
start_sapling_root: left.start_sapling_root,
|
||||
end_sapling_root: right.end_sapling_root,
|
||||
|
||||
// TODO: sum work?
|
||||
subtree_total_work: 0,
|
||||
start_height: left.start_height,
|
||||
end_height: right.end_height,
|
||||
shielded_tx: left.shielded_tx + right.shielded_tx,
|
||||
}
|
||||
}
|
||||
}
|
21
src/tree.rs
21
src/tree.rs
|
@ -272,29 +272,10 @@ impl<'a> IndexedNode<'a> {
|
|||
|
||||
}
|
||||
|
||||
fn combine_data(left: &NodeData, right: &NodeData) -> NodeData {
|
||||
NodeData {
|
||||
// TODO: hash children
|
||||
subtree_commitment: [0u8; 32],
|
||||
start_time: left.start_time,
|
||||
end_time: right.end_time,
|
||||
start_target: left.start_target,
|
||||
end_target: right.end_target,
|
||||
start_sapling_root: left.start_sapling_root,
|
||||
end_sapling_root: right.end_sapling_root,
|
||||
|
||||
// TODO: sum work?
|
||||
subtree_total_work: 0,
|
||||
start_height: left.start_height,
|
||||
end_height: right.end_height,
|
||||
shielded_tx: left.shielded_tx + right.shielded_tx,
|
||||
}
|
||||
}
|
||||
|
||||
fn combine_nodes<'a>(left: IndexedNode<'a>, right: IndexedNode<'a>) -> Entry {
|
||||
Entry {
|
||||
kind: EntryKind::Node(left.link, right.link),
|
||||
data: combine_data(&left.node.data, &right.node.data),
|
||||
data: NodeData::combine(&left.node.data, &right.node.data),
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue