mirror of
https://github.com/bitcoinresearchkit/brk.git
synced 2026-05-10 22:29:09 -07:00
computer: add more up to and from datasets
This commit is contained in:
@@ -4,30 +4,57 @@ use super::GroupFilter;
|
||||
|
||||
#[derive(Default, Clone)]
|
||||
pub struct GroupedByFromSize<T> {
|
||||
pub _1_000sats: T,
|
||||
pub _1sat: T,
|
||||
pub _10sats: T,
|
||||
pub _100sats: T,
|
||||
pub _1k_sats: T,
|
||||
pub _10k_sats: T,
|
||||
pub _100k_sats: T,
|
||||
pub _1m_sats: T,
|
||||
pub _10m_sats: T,
|
||||
pub _1btc: T,
|
||||
pub _10btc: T,
|
||||
pub _100btc: T,
|
||||
pub _1k_btc: T,
|
||||
pub _10k_btc: T,
|
||||
}
|
||||
|
||||
impl<T> GroupedByFromSize<T> {
|
||||
pub fn as_mut_vec(&mut self) -> [&mut T; 4] {
|
||||
pub fn as_mut_vec(&mut self) -> [&mut T; 13] {
|
||||
[
|
||||
&mut self._1_000sats,
|
||||
&mut self._1sat,
|
||||
&mut self._10sats,
|
||||
&mut self._100sats,
|
||||
&mut self._1k_sats,
|
||||
&mut self._10k_sats,
|
||||
&mut self._100k_sats,
|
||||
&mut self._1m_sats,
|
||||
&mut self._10m_sats,
|
||||
&mut self._1btc,
|
||||
&mut self._10btc,
|
||||
&mut self._100btc,
|
||||
&mut self._1k_btc,
|
||||
&mut self._10k_btc,
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
impl<T> GroupedByFromSize<(GroupFilter, T)> {
|
||||
pub fn vecs(&self) -> [&T; 4] {
|
||||
pub fn vecs(&self) -> [&T; 13] {
|
||||
[
|
||||
&self._1_000sats.1,
|
||||
&self._1sat.1,
|
||||
&self._10sats.1,
|
||||
&self._100sats.1,
|
||||
&self._1k_sats.1,
|
||||
&self._10k_sats.1,
|
||||
&self._100k_sats.1,
|
||||
&self._1m_sats.1,
|
||||
&self._10m_sats.1,
|
||||
&self._1btc.1,
|
||||
&self._10btc.1,
|
||||
&self._100btc.1,
|
||||
&self._1k_btc.1,
|
||||
&self._10k_btc.1,
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -35,16 +62,19 @@ impl<T> GroupedByFromSize<(GroupFilter, T)> {
|
||||
impl<T> From<GroupedByFromSize<T>> for GroupedByFromSize<(GroupFilter, T)> {
|
||||
fn from(value: GroupedByFromSize<T>) -> Self {
|
||||
Self {
|
||||
_1_000sats: (GroupFilter::From(1_000), value._1_000sats),
|
||||
_1btc: (GroupFilter::From(usize::from(Sats::ONE_BTC)), value._1btc),
|
||||
_10btc: (
|
||||
GroupFilter::From(usize::from(10 * Sats::ONE_BTC)),
|
||||
value._10btc,
|
||||
),
|
||||
_100btc: (
|
||||
GroupFilter::From(usize::from(100 * Sats::ONE_BTC)),
|
||||
value._100btc,
|
||||
),
|
||||
_1sat: (GroupFilter::From(Sats::_1.into()), value._1sat),
|
||||
_10sats: (GroupFilter::From(Sats::_10.into()), value._10sats),
|
||||
_100sats: (GroupFilter::From(Sats::_100.into()), value._100sats),
|
||||
_1k_sats: (GroupFilter::From(Sats::_1K.into()), value._1k_sats),
|
||||
_10k_sats: (GroupFilter::From(Sats::_10K.into()), value._10k_sats),
|
||||
_100k_sats: (GroupFilter::From(Sats::_100K.into()), value._100k_sats),
|
||||
_1m_sats: (GroupFilter::From(Sats::_1M.into()), value._1m_sats),
|
||||
_10m_sats: (GroupFilter::From(Sats::_10M.into()), value._10m_sats),
|
||||
_1btc: (GroupFilter::From(Sats::_1BTC.into()), value._1btc),
|
||||
_10btc: (GroupFilter::From(Sats::_10BTC.into()), value._10btc),
|
||||
_100btc: (GroupFilter::From(Sats::_100BTC.into()), value._100btc),
|
||||
_1k_btc: (GroupFilter::From(Sats::_1K_BTC.into()), value._1k_btc),
|
||||
_10k_btc: (GroupFilter::From(Sats::_10K_BTC.into()), value._10k_btc),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -98,11 +98,11 @@ impl<T> GroupedBySizeRange<T> {
|
||||
&mut self.from_100_000sats_to_1_000_000sats
|
||||
} else if value < Sats::_10M {
|
||||
&mut self.from_1_000_000sats_to_10_000_000sats
|
||||
} else if value < Sats::_1_BTC {
|
||||
} else if value < Sats::_1BTC {
|
||||
&mut self.from_10_000_000sats_to_1btc
|
||||
} else if value < Sats::_10_BTC {
|
||||
} else if value < Sats::_10BTC {
|
||||
&mut self.from_1btc_to_10btc
|
||||
} else if value < Sats::_100_BTC {
|
||||
} else if value < Sats::_100BTC {
|
||||
&mut self.from_10btc_to_100btc
|
||||
} else if value < Sats::_1K_BTC {
|
||||
&mut self.from_100btc_to_1_000btc
|
||||
@@ -146,9 +146,9 @@ impl<T> GroupedBySizeRange<T> {
|
||||
(Sats::_100K, &self.from_100_000sats_to_1_000_000sats),
|
||||
(Sats::_1M, &self.from_1_000_000sats_to_10_000_000sats),
|
||||
(Sats::_10M, &self.from_10_000_000sats_to_1btc),
|
||||
(Sats::_1_BTC, &self.from_1btc_to_10btc),
|
||||
(Sats::_10_BTC, &self.from_10btc_to_100btc),
|
||||
(Sats::_100_BTC, &self.from_100btc_to_1_000btc),
|
||||
(Sats::_1BTC, &self.from_1btc_to_10btc),
|
||||
(Sats::_10BTC, &self.from_10btc_to_100btc),
|
||||
(Sats::_100BTC, &self.from_100btc_to_1_000btc),
|
||||
(Sats::_1K_BTC, &self.from_1_000btc_to_10_000btc),
|
||||
(Sats::_10K_BTC, &self.from_10_000btc_to_100_000btc),
|
||||
(Sats::_100K_BTC, &self.from_100_000btc),
|
||||
|
||||
@@ -4,33 +4,57 @@ use super::GroupFilter;
|
||||
|
||||
#[derive(Default, Clone)]
|
||||
pub struct GroupedByUpToSize<T> {
|
||||
pub _1_000sats: T,
|
||||
pub _10_000sats: T,
|
||||
pub _10sats: T,
|
||||
pub _100sats: T,
|
||||
pub _1k_sats: T,
|
||||
pub _10k_sats: T,
|
||||
pub _100k_sats: T,
|
||||
pub _1m_sats: T,
|
||||
pub _10m_sats: T,
|
||||
pub _1btc: T,
|
||||
pub _10btc: T,
|
||||
pub _100btc: T,
|
||||
pub _1k_btc: T,
|
||||
pub _10k_btc: T,
|
||||
pub _100k_btc: T,
|
||||
}
|
||||
|
||||
impl<T> GroupedByUpToSize<T> {
|
||||
pub fn as_mut_vec(&mut self) -> [&mut T; 5] {
|
||||
pub fn as_mut_vec(&mut self) -> [&mut T; 13] {
|
||||
[
|
||||
&mut self._1_000sats,
|
||||
&mut self._10_000sats,
|
||||
&mut self._10sats,
|
||||
&mut self._100sats,
|
||||
&mut self._1k_sats,
|
||||
&mut self._10k_sats,
|
||||
&mut self._100k_sats,
|
||||
&mut self._1m_sats,
|
||||
&mut self._10m_sats,
|
||||
&mut self._1btc,
|
||||
&mut self._10btc,
|
||||
&mut self._100btc,
|
||||
&mut self._1k_btc,
|
||||
&mut self._10k_btc,
|
||||
&mut self._100k_btc,
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
impl<T> GroupedByUpToSize<(GroupFilter, T)> {
|
||||
pub fn vecs(&self) -> [&T; 5] {
|
||||
pub fn vecs(&self) -> [&T; 13] {
|
||||
[
|
||||
&self._1_000sats.1,
|
||||
&self._10_000sats.1,
|
||||
&self._10sats.1,
|
||||
&self._100sats.1,
|
||||
&self._1k_sats.1,
|
||||
&self._10k_sats.1,
|
||||
&self._100k_sats.1,
|
||||
&self._1m_sats.1,
|
||||
&self._10m_sats.1,
|
||||
&self._1btc.1,
|
||||
&self._10btc.1,
|
||||
&self._100btc.1,
|
||||
&self._1k_btc.1,
|
||||
&self._10k_btc.1,
|
||||
&self._100k_btc.1,
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -38,17 +62,19 @@ impl<T> GroupedByUpToSize<(GroupFilter, T)> {
|
||||
impl<T> From<GroupedByUpToSize<T>> for GroupedByUpToSize<(GroupFilter, T)> {
|
||||
fn from(value: GroupedByUpToSize<T>) -> Self {
|
||||
Self {
|
||||
_1_000sats: (GroupFilter::To(1_000), value._1_000sats),
|
||||
_10_000sats: (GroupFilter::To(10_000), value._10_000sats),
|
||||
_1btc: (GroupFilter::To(usize::from(Sats::ONE_BTC)), value._1btc),
|
||||
_10btc: (
|
||||
GroupFilter::To(usize::from(10 * Sats::ONE_BTC)),
|
||||
value._10btc,
|
||||
),
|
||||
_100btc: (
|
||||
GroupFilter::To(usize::from(100 * Sats::ONE_BTC)),
|
||||
value._100btc,
|
||||
),
|
||||
_10sats: (GroupFilter::To(Sats::_10.into()), value._10sats),
|
||||
_100sats: (GroupFilter::To(Sats::_100.into()), value._100sats),
|
||||
_1k_sats: (GroupFilter::To(Sats::_1K.into()), value._1k_sats),
|
||||
_10k_sats: (GroupFilter::To(Sats::_10K.into()), value._10k_sats),
|
||||
_100k_sats: (GroupFilter::To(Sats::_100K.into()), value._100k_sats),
|
||||
_1m_sats: (GroupFilter::To(Sats::_1M.into()), value._1m_sats),
|
||||
_10m_sats: (GroupFilter::To(Sats::_10M.into()), value._10m_sats),
|
||||
_1btc: (GroupFilter::To(Sats::_1BTC.into()), value._1btc),
|
||||
_10btc: (GroupFilter::To(Sats::_10BTC.into()), value._10btc),
|
||||
_100btc: (GroupFilter::To(Sats::_100BTC.into()), value._100btc),
|
||||
_1k_btc: (GroupFilter::To(Sats::_1K_BTC.into()), value._1k_btc),
|
||||
_10k_btc: (GroupFilter::To(Sats::_10K_BTC.into()), value._10k_btc),
|
||||
_100k_btc: (GroupFilter::To(Sats::_100K_BTC.into()), value._100k_btc),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -44,9 +44,9 @@ impl Sats {
|
||||
pub const _100K: Self = Self(100_000);
|
||||
pub const _1M: Self = Self(1_000_000);
|
||||
pub const _10M: Self = Self(10_000_000);
|
||||
pub const _1_BTC: Self = Self::ONE_BTC;
|
||||
pub const _10_BTC: Self = Self(10_00_000_000);
|
||||
pub const _100_BTC: Self = Self(100_00_000_000);
|
||||
pub const _1BTC: Self = Self::ONE_BTC;
|
||||
pub const _10BTC: Self = Self(10_00_000_000);
|
||||
pub const _100BTC: Self = Self(100_00_000_000);
|
||||
pub const _1K_BTC: Self = Self(1_000_00_000_000);
|
||||
pub const _10K_BTC: Self = Self(10_000_00_000_000);
|
||||
pub const _100K_BTC: Self = Self(100_000_00_000_000);
|
||||
|
||||
Reference in New Issue
Block a user