use brk_traversable::Traversable; use brk_types::{ Day1, Day3, DifficultyEpoch, HalvingEpoch, Height, Hour1, Hour4, Hour12, Minute10, Minute30, Month1, Month3, Month6, StoredU64, Version, Week1, Year1, Year10, }; use vecdb::{Database, EagerVec, ImportableVec, PcoVec, Rw, StorageMode}; use brk_error::Result; #[derive(Traversable)] pub struct Vecs { pub identity: M::Stored>>, pub minute10: M::Stored>>, pub minute30: M::Stored>>, pub hour1: M::Stored>>, pub hour4: M::Stored>>, pub hour12: M::Stored>>, pub day1: M::Stored>>, pub day3: M::Stored>>, pub difficultyepoch: M::Stored>>, pub halvingepoch: M::Stored>>, pub week1: M::Stored>>, pub month1: M::Stored>>, pub month3: M::Stored>>, pub month6: M::Stored>>, pub year1: M::Stored>>, pub year10: M::Stored>>, pub txindex_count: M::Stored>>, } impl Vecs { pub(crate) fn forced_import(db: &Database, version: Version) -> Result { Ok(Self { identity: EagerVec::forced_import(db, "height", version)?, minute10: EagerVec::forced_import(db, "minute10", version)?, minute30: EagerVec::forced_import(db, "minute30", version)?, hour1: EagerVec::forced_import(db, "hour1", version)?, hour4: EagerVec::forced_import(db, "hour4", version)?, hour12: EagerVec::forced_import(db, "hour12", version)?, day1: EagerVec::forced_import(db, "day1", version)?, day3: EagerVec::forced_import(db, "day3", version)?, difficultyepoch: EagerVec::forced_import(db, "difficultyepoch", version)?, halvingepoch: EagerVec::forced_import(db, "halvingepoch", version)?, week1: EagerVec::forced_import(db, "week1", version)?, month1: EagerVec::forced_import(db, "month1", version)?, month3: EagerVec::forced_import(db, "month3", version)?, month6: EagerVec::forced_import(db, "month6", version)?, year1: EagerVec::forced_import(db, "year1", version)?, year10: EagerVec::forced_import(db, "year10", version)?, txindex_count: EagerVec::forced_import(db, "txindex_count", version)?, }) } }