pub mod count; pub mod difficulty; pub mod halving; pub mod interval; pub mod lookback; pub mod size; pub mod weight; mod compute; mod import; use brk_traversable::Traversable; use vecdb::{Database, Rw, StorageMode}; pub use count::Vecs as CountVecs; pub use difficulty::Vecs as DifficultyVecs; pub use halving::Vecs as HalvingVecs; pub use interval::Vecs as IntervalVecs; pub use lookback::Vecs as LookbackVecs; pub use size::Vecs as SizeVecs; pub use weight::Vecs as WeightVecs; pub const DB_NAME: &str = "blocks"; pub(crate) const TARGET_BLOCKS_PER_DAY_F64: f64 = 144.0; pub(crate) const TARGET_BLOCKS_PER_DAY_F32: f32 = 144.0; pub(crate) const TARGET_BLOCKS_PER_DAY: u64 = 144; pub(crate) const TARGET_BLOCKS_PER_WEEK: u64 = 7 * TARGET_BLOCKS_PER_DAY; pub(crate) const TARGET_BLOCKS_PER_MONTH: u64 = 30 * TARGET_BLOCKS_PER_DAY; pub(crate) const TARGET_BLOCKS_PER_QUARTER: u64 = 3 * TARGET_BLOCKS_PER_MONTH; pub(crate) const TARGET_BLOCKS_PER_SEMESTER: u64 = 2 * TARGET_BLOCKS_PER_QUARTER; pub(crate) const TARGET_BLOCKS_PER_YEAR: u64 = 2 * TARGET_BLOCKS_PER_SEMESTER; pub(crate) const ONE_TERA_HASH: f64 = 1_000_000_000_000.0; #[derive(Traversable)] pub struct Vecs { #[traversable(skip)] pub db: Database, pub count: CountVecs, pub lookback: LookbackVecs, pub interval: IntervalVecs, #[traversable(flatten)] pub size: SizeVecs, #[traversable(flatten)] pub weight: WeightVecs, pub difficulty: DifficultyVecs, pub halving: HalvingVecs, }