mirror of
https://github.com/bitcoinresearchkit/brk.git
synced 2026-07-03 15:23:41 -07:00
113 lines
3.2 KiB
Rust
113 lines
3.2 KiB
Rust
use crate::Sats;
|
|
|
|
use super::GroupFilter;
|
|
|
|
#[derive(Default, Clone)]
|
|
pub struct ByGreatEqualAmount<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> ByGreatEqualAmount<T> {
|
|
pub fn iter_mut(&mut self) -> impl Iterator<Item = &mut T> {
|
|
[
|
|
&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,
|
|
]
|
|
.into_iter()
|
|
}
|
|
}
|
|
|
|
impl<T> ByGreatEqualAmount<(GroupFilter, T)> {
|
|
pub fn iter_right(&self) -> impl Iterator<Item = &T> {
|
|
[
|
|
&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,
|
|
]
|
|
.into_iter()
|
|
}
|
|
}
|
|
|
|
impl<T> From<ByGreatEqualAmount<T>> for ByGreatEqualAmount<(GroupFilter, T)> {
|
|
fn from(value: ByGreatEqualAmount<T>) -> Self {
|
|
Self {
|
|
_1sat: (GroupFilter::GreaterOrEqual(Sats::_1.into()), value._1sat),
|
|
_10sats: (GroupFilter::GreaterOrEqual(Sats::_10.into()), value._10sats),
|
|
_100sats: (
|
|
GroupFilter::GreaterOrEqual(Sats::_100.into()),
|
|
value._100sats,
|
|
),
|
|
_1k_sats: (
|
|
GroupFilter::GreaterOrEqual(Sats::_1K.into()),
|
|
value._1k_sats,
|
|
),
|
|
_10k_sats: (
|
|
GroupFilter::GreaterOrEqual(Sats::_10K.into()),
|
|
value._10k_sats,
|
|
),
|
|
_100k_sats: (
|
|
GroupFilter::GreaterOrEqual(Sats::_100K.into()),
|
|
value._100k_sats,
|
|
),
|
|
_1m_sats: (
|
|
GroupFilter::GreaterOrEqual(Sats::_1M.into()),
|
|
value._1m_sats,
|
|
),
|
|
_10m_sats: (
|
|
GroupFilter::GreaterOrEqual(Sats::_10M.into()),
|
|
value._10m_sats,
|
|
),
|
|
_1btc: (GroupFilter::GreaterOrEqual(Sats::_1BTC.into()), value._1btc),
|
|
_10btc: (
|
|
GroupFilter::GreaterOrEqual(Sats::_10BTC.into()),
|
|
value._10btc,
|
|
),
|
|
_100btc: (
|
|
GroupFilter::GreaterOrEqual(Sats::_100BTC.into()),
|
|
value._100btc,
|
|
),
|
|
_1k_btc: (
|
|
GroupFilter::GreaterOrEqual(Sats::_1K_BTC.into()),
|
|
value._1k_btc,
|
|
),
|
|
_10k_btc: (
|
|
GroupFilter::GreaterOrEqual(Sats::_10K_BTC.into()),
|
|
value._10k_btc,
|
|
),
|
|
}
|
|
}
|
|
}
|