use brk_error::Result;
use brk_indexer::Indexer;
use brk_types::{Indexes, StoredU32};
use vecdb::Exit;
use super::Vecs;
use crate::indexes;
impl Vecs {
pub(crate) fn compute(
&mut self,
indexer: &Indexer,
indexes: &indexes::Vecs,
starting_indexes: &Indexes,
exit: &Exit,
) -> Result<()> {
self.adjustment.bps.height.compute_ratio_change(
starting_indexes.height,
&indexer.vecs.blocks.difficulty,
2016,
exit,
)?;
self.epoch.height.compute_transform(
starting_indexes.height,
&indexes.height.epoch,
|(h, epoch, ..)| (h, epoch),
exit,
)?;
self.blocks_to_retarget.height.compute_transform(
starting_indexes.height,
&indexes.height.epoch,
|(h, ..)| (h, StoredU32::from(h.left_before_next_diff_adj())),
exit,
)?;
Ok(())
}
}