computer: add more up to and from datasets

This commit is contained in:
nym21
2025-07-07 23:53:59 +02:00
parent bff22b5182
commit 8cc1f8d691
15 changed files with 1251 additions and 247 deletions

View File

@@ -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),
}
}
}

View File

@@ -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),

View File

@@ -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),
}
}
}

View File

@@ -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);