global: snapshot

This commit is contained in:
nym21
2025-11-11 09:36:24 +01:00
parent 37f5f50867
commit 2dcbd8df99
101 changed files with 978 additions and 456 deletions

View File

@@ -11,7 +11,7 @@ use brk_types::{
};
use vecdb::{
Database, EagerVec, Exit, IterableCloneableVec, IterableVec, LazyVecFrom1, LazyVecFrom2,
LazyVecFrom3, PAGE_SIZE, StoredIndex, TypedVecIterator,
LazyVecFrom3, PAGE_SIZE, TypedVecIterator, VecIndex,
};
use crate::grouped::{

View File

@@ -7,7 +7,7 @@ use brk_traversable::Traversable;
use brk_types::{DateIndex, Height, OHLCCents, Version};
use vecdb::{
AnyStoredVec, AnyVec, Database, Exit, GenericStoredVec, IterableVec, PAGE_SIZE, RawVec,
StoredIndex, VecIterator,
VecIndex, VecIterator,
};
use super::{Indexes, indexes};

View File

@@ -3,7 +3,7 @@ use brk_traversable::Traversable;
use brk_types::{CheckedSub, StoredU64, Version};
use vecdb::{
AnyStoredVec, AnyVec, Database, EagerVec, Exit, Format, GenericStoredVec, IterableVec,
StoredIndex, StoredRaw,
VecIndex, VecValue,
};
use crate::utils::get_percentile;
@@ -13,7 +13,7 @@ use super::ComputedType;
#[derive(Clone, Debug, Traversable)]
pub struct EagerVecsBuilder<I, T>
where
I: StoredIndex,
I: VecIndex,
T: ComputedType,
{
pub first: Option<Box<EagerVec<I, T>>>,
@@ -34,7 +34,7 @@ const VERSION: Version = Version::ZERO;
impl<I, T> EagerVecsBuilder<I, T>
where
I: StoredIndex,
I: VecIndex,
T: ComputedType,
{
pub fn forced_import_compressed(
@@ -244,7 +244,7 @@ where
exit: &Exit,
) -> Result<()>
where
I2: StoredIndex + StoredRaw + CheckedSub<I2>,
I2: VecIndex + VecValue + CheckedSub<I2>,
{
self.validate_computed_version_or_reset(
source.version() + first_indexes.version() + count_indexes.version(),
@@ -403,7 +403,7 @@ where
exit: &Exit,
) -> Result<()>
where
I2: StoredIndex + StoredRaw + CheckedSub<I2>,
I2: VecIndex + VecValue + CheckedSub<I2>,
{
if self.pct90.is_some()
|| self.pct75.is_some()

View File

@@ -1,6 +1,6 @@
use brk_traversable::Traversable;
use brk_types::Version;
use vecdb::{FromCoarserIndex, IterableBoxedVec, IterableCloneableVec, LazyVecFrom2, StoredIndex};
use vecdb::{FromCoarserIndex, IterableBoxedVec, IterableCloneableVec, LazyVecFrom2, VecIndex};
use crate::grouped::{EagerVecsBuilder, VecBuilderOptions};
@@ -10,9 +10,9 @@ use super::ComputedType;
#[derive(Clone, Traversable)]
pub struct LazyVecsBuilder<I, T, S1I, S2T>
where
I: StoredIndex,
I: VecIndex,
T: ComputedType,
S1I: StoredIndex,
S1I: VecIndex,
S2T: ComputedType,
{
pub first: Option<Box<LazyVecFrom2<I, T, S1I, T, I, S2T>>>,
@@ -28,9 +28,9 @@ const VERSION: Version = Version::ZERO;
impl<I, T, S1I, S2T> LazyVecsBuilder<I, T, S1I, S2T>
where
I: StoredIndex,
I: VecIndex,
T: ComputedType + 'static,
S1I: StoredIndex + 'static + FromCoarserIndex<I>,
S1I: VecIndex + 'static + FromCoarserIndex<I>,
S2T: ComputedType,
{
#[allow(clippy::too_many_arguments)]

View File

@@ -1,23 +1,25 @@
use std::ops::{Add, AddAssign, Div};
use vecdb::StoredCompressed;
use vecdb::{Compressable, Formattable};
pub trait ComputedType
where
Self: StoredCompressed
+ From<usize>
+ Div<usize, Output = Self>
+ Add<Output = Self>
+ AddAssign
+ Ord,
{
}
impl<T> ComputedType for T where
T: StoredCompressed
Self: Compressable
+ From<usize>
+ Div<usize, Output = Self>
+ Add<Output = Self>
+ AddAssign
+ Ord
+ Formattable,
{
}
impl<T> ComputedType for T where
T: Compressable
+ From<usize>
+ Div<usize, Output = Self>
+ Add<Output = Self>
+ AddAssign
+ Ord
+ Formattable
{
}

View File

@@ -7,7 +7,7 @@ use brk_types::{
};
use vecdb::{
AnyVec, AnyWritableVec, CollectableVec, Database, EagerVec, Exit, GenericStoredVec,
IterableCloneableVec, StoredIndex, TypedVecIterator,
IterableCloneableVec, TypedVecIterator, VecIndex,
};
use crate::{

View File

@@ -3,7 +3,7 @@ use brk_traversable::Traversable;
use brk_types::{Date, DateIndex, Dollars, StoredF32, Version};
use vecdb::{
AnyStoredVec, AnyVec, CollectableVec, Database, EagerVec, Exit, GenericStoredVec, IterableVec,
StoredIndex, TypedVecIterator,
TypedVecIterator, VecIndex,
};
use crate::{

View File

@@ -3,7 +3,7 @@ use brk_traversable::Traversable;
use brk_types::{Date, DateIndex, Dollars, StoredF32, Version};
use vecdb::{
AnyStoredVec, AnyVec, BoxedVecIterator, CollectableVec, Database, EagerVec, Exit,
GenericStoredVec, IterableVec, StoredIndex,
GenericStoredVec, IterableVec, VecIndex,
};
use crate::{Indexes, grouped::source::Source, indexes};

View File

@@ -3,8 +3,8 @@ use brk_indexer::Indexer;
use brk_traversable::Traversable;
use brk_types::{Bitcoin, Close, Dollars, Height, Sats, TxIndex, Version};
use vecdb::{
CollectableVec, Database, Exit, IterableCloneableVec, LazyVecFrom1, LazyVecFrom3, StoredIndex,
StoredVec,
CollectableVec, Database, Exit, IterableCloneableVec, LazyVecFrom1, LazyVecFrom3, StoredVec,
VecIndex,
};
use crate::{Indexes, grouped::Source, indexes, price};

View File

@@ -14,7 +14,7 @@ use brk_types::{
};
use vecdb::{
Database, EagerVec, Exit, IterableCloneableVec, LazyVecFrom1, LazyVecFrom2, PAGE_SIZE,
StoredIndex, TypedVecIterator,
TypedVecIterator, VecIndex,
};
const VERSION: Version = Version::ZERO;

View File

@@ -3,7 +3,7 @@ use std::{path::Path, thread};
use brk_error::Result;
use brk_traversable::Traversable;
use brk_types::{Date, DateIndex, Dollars, Height, Sats, StoredF32, StoredU16, Version};
use vecdb::{Database, EagerVec, Exit, GenericStoredVec, PAGE_SIZE, StoredIndex, TypedVecIterator};
use vecdb::{Database, EagerVec, Exit, GenericStoredVec, PAGE_SIZE, TypedVecIterator, VecIndex};
use crate::{
grouped::{ComputedStandardDeviationVecsFromDateIndex, Source, StandardDeviationVecsOptions},

View File

@@ -8,7 +8,7 @@ use brk_types::{Address, AddressBytes, Height, OutputType, PoolId, Pools, TxOutI
use rayon::prelude::*;
use vecdb::{
AnyStoredVec, AnyVec, Database, Exit, GenericStoredVec, IterableVec, PAGE_SIZE, RawVec,
StoredIndex, TypedVecIterator, Version,
TypedVecIterator, VecIndex, Version,
};
mod vecs;

View File

@@ -1,7 +1,7 @@
use brk_error::Result;
use brk_traversable::Traversable;
use brk_types::{Height, PoolId, Pools, Sats, StoredF32, StoredU16, StoredU32};
use vecdb::{Database, Exit, GenericStoredVec, IterableVec, StoredIndex, Version};
use vecdb::{Database, Exit, GenericStoredVec, IterableVec, VecIndex, Version};
use crate::{
chain,

View File

@@ -8,7 +8,7 @@ use brk_types::{
};
use vecdb::{
AnyStoredVec, AnyVec, Database, EagerVec, Exit, GenericStoredVec, IterableVec, PAGE_SIZE,
RawVec, StoredIndex,
RawVec, VecIndex,
};
use crate::{fetched, grouped::Source};

View File

@@ -18,7 +18,7 @@ use smallvec::SmallVec;
use vecdb::{
AnyStoredVec, AnyVec, BoxedVecIterator, CollectableVec, Database, EagerVec, Exit, Format,
GenericStoredVec, ImportOptions, IterableCloneableVec, IterableVec, LazyVecFrom1, PAGE_SIZE,
RawVec, Reader, Stamp, StoredIndex, TypedVecIterator,
RawVec, Reader, Stamp, TypedVecIterator, VecIndex,
};
use crate::{

View File

@@ -1,14 +1,14 @@
use std::collections::BTreeMap;
use vecdb::{CompressedVec, RawVec, StoredCompressed, StoredIndex, StoredRaw};
use vecdb::{Compressable, CompressedVec, RawVec, VecIndex, VecValue};
#[derive(Debug)]
pub struct RangeMap<I, T>(BTreeMap<I, T>);
impl<I, T> RangeMap<I, T>
where
I: StoredIndex,
T: StoredIndex,
I: VecIndex,
T: VecIndex,
{
pub fn get(&self, key: I) -> Option<&T> {
self.0.range(..=key).next_back().map(|(&min, value)| {
@@ -22,8 +22,8 @@ where
impl<I, T> From<&RawVec<I, T>> for RangeMap<T, I>
where
I: StoredIndex,
T: StoredIndex + StoredRaw,
I: VecIndex,
T: VecIndex + VecValue,
{
#[inline]
fn from(vec: &RawVec<I, T>) -> Self {
@@ -38,8 +38,8 @@ where
impl<I, T> From<&CompressedVec<I, T>> for RangeMap<T, I>
where
I: StoredIndex,
T: StoredIndex + StoredCompressed,
I: VecIndex,
T: VecIndex + Compressable,
{
#[inline]
fn from(vec: &CompressedVec<I, T>) -> Self {

View File

@@ -11,7 +11,7 @@ use brk_types::{
};
use derive_deref::{Deref, DerefMut};
use rustc_hash::FxHashMap;
use vecdb::{Database, Exit, Format, IterableVec, StoredIndex};
use vecdb::{Database, Exit, Format, IterableVec, VecIndex};
use crate::{
Indexes, indexes, price,

View File

@@ -2,6 +2,7 @@ use std::ops::{Add, AddAssign, SubAssign};
use brk_types::{CheckedSub, LoadedAddressData, Sats};
use serde::Serialize;
use vecdb::Formattable;
use zerocopy::{FromBytes, Immutable, IntoBytes, KnownLayout};
#[derive(Debug, Default, Clone, FromBytes, Immutable, IntoBytes, KnownLayout, Serialize)]
@@ -55,3 +56,10 @@ impl std::fmt::Display for SupplyState {
write!(f, "utxos: {}, value: {}", self.utxo_count, self.value)
}
}
impl Formattable for SupplyState {
#[inline(always)]
fn may_need_escaping() -> bool {
true
}
}

View File

@@ -1,7 +1,7 @@
use brk_error::Result;
use brk_types::{Bitcoin, CheckedSub, Close, Date, DateIndex, Dollars, Sats, StoredF32};
use vecdb::{
AnyStoredVec, AnyVec, EagerVec, Exit, GenericStoredVec, IterableVec, StoredIndex, Version,
AnyStoredVec, AnyVec, EagerVec, Exit, GenericStoredVec, IterableVec, VecIndex, Version,
};
const DCA_AMOUNT: Dollars = Dollars::mint(100.0);
@@ -225,7 +225,7 @@ pub trait ComputeFromSats<I> {
}
impl<I> ComputeFromSats<I> for EagerVec<I, Bitcoin>
where
I: StoredIndex,
I: VecIndex,
{
fn compute_from_sats(
&mut self,
@@ -263,7 +263,7 @@ pub trait ComputeFromBitcoin<I> {
}
impl<I> ComputeFromBitcoin<I> for EagerVec<I, Dollars>
where
I: StoredIndex,
I: VecIndex,
{
fn compute_from_bitcoin(
&mut self,
@@ -305,7 +305,7 @@ pub trait ComputeDrawdown<I> {
}
impl<I> ComputeDrawdown<I> for EagerVec<I, StoredF32>
where
I: StoredIndex,
I: VecIndex,
{
fn compute_drawdown(
&mut self,