move node data to separate mod

This commit is contained in:
NikVolf 2019-09-03 12:56:24 +03:00
parent 771aa867c1
commit bce88797f4
3 changed files with 40 additions and 38 deletions

View File

@ -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 {

37
src/node_data.rs Normal file
View File

@ -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,
}
}
}

View File

@ -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),
}
}