mirror of
https://github.com/bitcoinresearchkit/brk.git
synced 2026-04-29 00:59:58 -07:00
global: snapshot
This commit is contained in:
@@ -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::{
|
||||
|
||||
@@ -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};
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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)]
|
||||
|
||||
@@ -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
|
||||
{
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@ use brk_types::{
|
||||
};
|
||||
use vecdb::{
|
||||
AnyVec, AnyWritableVec, CollectableVec, Database, EagerVec, Exit, GenericStoredVec,
|
||||
IterableCloneableVec, StoredIndex, TypedVecIterator,
|
||||
IterableCloneableVec, TypedVecIterator, VecIndex,
|
||||
};
|
||||
|
||||
use crate::{
|
||||
|
||||
@@ -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::{
|
||||
|
||||
@@ -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};
|
||||
|
||||
@@ -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};
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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},
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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};
|
||||
|
||||
@@ -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::{
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user