mirror of
https://github.com/bitcoinresearchkit/brk.git
synced 2026-05-02 10:30:00 -07:00
global: snapshot
This commit is contained in:
@@ -1,9 +1,9 @@
|
||||
use brk_traversable::Traversable;
|
||||
use brk_types::{StoredF32, StoredI16, StoredU16, Version};
|
||||
use brk_types::{StoredF32, StoredI8, StoredU16, Version};
|
||||
|
||||
use super::{
|
||||
indexes,
|
||||
internal::{ConstantVecs, ReturnF32Tenths, ReturnI16, ReturnU16},
|
||||
internal::{ConstantVecs, ReturnF32Tenths, ReturnI8, ReturnU16},
|
||||
};
|
||||
|
||||
pub const DB_NAME: &str = "constants";
|
||||
@@ -24,10 +24,10 @@ pub struct Vecs {
|
||||
pub constant_80: ConstantVecs<StoredU16>,
|
||||
pub constant_100: ConstantVecs<StoredU16>,
|
||||
pub constant_600: ConstantVecs<StoredU16>,
|
||||
pub constant_minus_1: ConstantVecs<StoredI16>,
|
||||
pub constant_minus_2: ConstantVecs<StoredI16>,
|
||||
pub constant_minus_3: ConstantVecs<StoredI16>,
|
||||
pub constant_minus_4: ConstantVecs<StoredI16>,
|
||||
pub constant_minus_1: ConstantVecs<StoredI8>,
|
||||
pub constant_minus_2: ConstantVecs<StoredI8>,
|
||||
pub constant_minus_3: ConstantVecs<StoredI8>,
|
||||
pub constant_minus_4: ConstantVecs<StoredI8>,
|
||||
}
|
||||
|
||||
impl Vecs {
|
||||
@@ -49,10 +49,10 @@ impl Vecs {
|
||||
constant_80: ConstantVecs::new::<ReturnU16<80>>("constant_80", v, indexes),
|
||||
constant_100: ConstantVecs::new::<ReturnU16<100>>("constant_100", v, indexes),
|
||||
constant_600: ConstantVecs::new::<ReturnU16<600>>("constant_600", v, indexes),
|
||||
constant_minus_1: ConstantVecs::new::<ReturnI16<-1>>("constant_minus_1", v, indexes),
|
||||
constant_minus_2: ConstantVecs::new::<ReturnI16<-2>>("constant_minus_2", v, indexes),
|
||||
constant_minus_3: ConstantVecs::new::<ReturnI16<-3>>("constant_minus_3", v, indexes),
|
||||
constant_minus_4: ConstantVecs::new::<ReturnI16<-4>>("constant_minus_4", v, indexes),
|
||||
constant_minus_1: ConstantVecs::new::<ReturnI8<-1>>("constant_minus_1", v, indexes),
|
||||
constant_minus_2: ConstantVecs::new::<ReturnI8<-2>>("constant_minus_2", v, indexes),
|
||||
constant_minus_3: ConstantVecs::new::<ReturnI8<-3>>("constant_minus_3", v, indexes),
|
||||
constant_minus_4: ConstantVecs::new::<ReturnI8<-4>>("constant_minus_4", v, indexes),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@ use std::{
|
||||
use brk_error::{Error, Result};
|
||||
use brk_types::{CentsCompact, Dollars, Height, Sats, SupplyState};
|
||||
use derive_more::{Deref, DerefMut};
|
||||
use pco::standalone::{simple_decompress, simpler_compress};
|
||||
use pco::{standalone::{simple_compress, simple_decompress}, ChunkConfig};
|
||||
use rustc_hash::FxHashMap;
|
||||
use serde::{Deserialize, Serialize};
|
||||
use vecdb::Bytes;
|
||||
@@ -234,15 +234,14 @@ impl PriceToAmount {
|
||||
#[derive(Clone, Default, Debug, Deref, DerefMut, Serialize, Deserialize)]
|
||||
struct State(BTreeMap<CentsCompact, Sats>);
|
||||
|
||||
const COMPRESSION_LEVEL: usize = 4;
|
||||
|
||||
impl State {
|
||||
fn serialize(&self) -> vecdb::Result<Vec<u8>> {
|
||||
let keys: Vec<i32> = self.keys().map(|k| i32::from(*k)).collect();
|
||||
let values: Vec<u64> = self.values().map(|v| u64::from(*v)).collect();
|
||||
|
||||
let compressed_keys = simpler_compress(&keys, COMPRESSION_LEVEL)?;
|
||||
let compressed_values = simpler_compress(&values, COMPRESSION_LEVEL)?;
|
||||
let config = ChunkConfig::default();
|
||||
let compressed_keys = simple_compress(&keys, &config)?;
|
||||
let compressed_values = simple_compress(&values, &config)?;
|
||||
|
||||
let mut buffer = Vec::new();
|
||||
buffer.extend(keys.len().to_bytes());
|
||||
|
||||
@@ -21,7 +21,7 @@ mod ratio32;
|
||||
mod ratio32_neg;
|
||||
mod ratio_f32;
|
||||
mod return_f32_tenths;
|
||||
mod return_i16;
|
||||
mod return_i8;
|
||||
mod return_u16;
|
||||
mod rsi_formula;
|
||||
mod sat_halve;
|
||||
@@ -61,7 +61,7 @@ pub use ratio32::*;
|
||||
pub use ratio32_neg::*;
|
||||
pub use ratio_f32::*;
|
||||
pub use return_f32_tenths::*;
|
||||
pub use return_i16::*;
|
||||
pub use return_i8::*;
|
||||
pub use return_u16::*;
|
||||
pub use rsi_formula::*;
|
||||
pub use sat_halve::*;
|
||||
|
||||
@@ -1,12 +0,0 @@
|
||||
use brk_types::StoredI16;
|
||||
use vecdb::UnaryTransform;
|
||||
|
||||
/// Returns a constant i16 value, ignoring the input.
|
||||
pub struct ReturnI16<const V: i16>;
|
||||
|
||||
impl<S, const V: i16> UnaryTransform<S, StoredI16> for ReturnI16<V> {
|
||||
#[inline(always)]
|
||||
fn apply(_: S) -> StoredI16 {
|
||||
StoredI16::new(V)
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
use brk_types::StoredI8;
|
||||
use vecdb::UnaryTransform;
|
||||
|
||||
/// Returns a constant i8 value, ignoring the input.
|
||||
pub struct ReturnI8<const V: i8>;
|
||||
|
||||
impl<S, const V: i8> UnaryTransform<S, StoredI8> for ReturnI8<V> {
|
||||
#[inline(always)]
|
||||
fn apply(_: S) -> StoredI8 {
|
||||
StoredI8::new(V)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user