From 1bc739d07f310f3192d8199e3332c609d5cec22d Mon Sep 17 00:00:00 2001 From: nym21 Date: Thu, 10 Jul 2025 18:35:54 +0200 Subject: [PATCH] vec + comp: small changes --- crates/brk_computer/src/vecs/fetched.rs | 14 +++++++++++--- crates/brk_vec/src/traits/generic.rs | 2 +- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/crates/brk_computer/src/vecs/fetched.rs b/crates/brk_computer/src/vecs/fetched.rs index 8a003053d..2975127f5 100644 --- a/crates/brk_computer/src/vecs/fetched.rs +++ b/crates/brk_computer/src/vecs/fetched.rs @@ -8,7 +8,9 @@ use brk_core::{ use brk_exit::Exit; use brk_fetcher::Fetcher; use brk_indexer::Indexer; -use brk_vec::{AnyCollectableVec, AnyIterableVec, Computation, EagerVec, Format, StoredIndex}; +use brk_vec::{ + AnyCollectableVec, AnyIterableVec, AnyVec, Computation, EagerVec, Format, StoredIndex, +}; use crate::vecs::grouped::Source; @@ -449,12 +451,18 @@ impl Vecs { starting_indexes.dateindex, &indexes.dateindex_to_date, |(di, d, this)| { - let mut ohlc = fetcher.get_date(d).unwrap_or_else(|_| { + let get_prev = || { this.get_or_read(di, &this.mmap().load()) .unwrap() .unwrap() .into_owned() - }); + }; + + let mut ohlc = if di.unwrap_to_usize() + 1 >= this.len() { + fetcher.get_date(d).unwrap_or_else(|_| get_prev()) + } else { + get_prev() + }; if let Some(prev) = di.decremented() { let prev_open = *this diff --git a/crates/brk_vec/src/traits/generic.rs b/crates/brk_vec/src/traits/generic.rs index 9f51c7745..bee34a271 100644 --- a/crates/brk_vec/src/traits/generic.rs +++ b/crates/brk_vec/src/traits/generic.rs @@ -123,7 +123,7 @@ where fn file_write_all(&mut self, file: &mut File, buf: &[u8]) -> Result<()> { file.write_all(buf)?; // file.flush()?; - // file.sync_data()?; + file.sync_data()?; self.update_mmap(file) }