mirror of
https://github.com/bitcoinresearchkit/brk.git
synced 2026-06-22 12:23:04 -07:00
50 lines
1.5 KiB
Rust
50 lines
1.5 KiB
Rust
use std::path::Path;
|
|
|
|
use brk_error::Result;
|
|
use brk_types::Version;
|
|
|
|
use crate::{
|
|
indexes,
|
|
internal::db_utils::{finalize_db, open_db},
|
|
};
|
|
|
|
use super::{
|
|
ActivityVecs, AdjustedVecs, CapVecs, DB_NAME, PricesVecs, ReserveRiskVecs, SupplyVecs,
|
|
ValueVecs, Vecs,
|
|
};
|
|
|
|
use crate::internal::{WindowStartVec, Windows};
|
|
|
|
impl Vecs {
|
|
pub(crate) fn forced_import(
|
|
parent_path: &Path,
|
|
parent_version: Version,
|
|
indexes: &indexes::Vecs,
|
|
cached_starts: &Windows<&WindowStartVec>,
|
|
) -> Result<Self> {
|
|
let db = open_db(parent_path, DB_NAME, 250_000)?;
|
|
let version = parent_version;
|
|
let v1 = version + Version::ONE;
|
|
let activity = ActivityVecs::forced_import(&db, version, indexes, cached_starts)?;
|
|
let supply = SupplyVecs::forced_import(&db, v1, indexes)?;
|
|
let value = ValueVecs::forced_import(&db, v1, indexes, cached_starts)?;
|
|
let cap = CapVecs::forced_import(&db, version + Version::TWO, indexes)?;
|
|
let prices = PricesVecs::forced_import(&db, version + Version::new(3), indexes)?;
|
|
let adjusted = AdjustedVecs::forced_import(&db, version, indexes)?;
|
|
let reserve_risk = ReserveRiskVecs::forced_import(&db, v1, indexes)?;
|
|
|
|
let this = Self {
|
|
db,
|
|
activity,
|
|
supply,
|
|
value,
|
|
cap,
|
|
prices,
|
|
adjusted,
|
|
reserve_risk,
|
|
};
|
|
finalize_db(&this.db, &this)?;
|
|
Ok(this)
|
|
}
|
|
}
|