global: snapshot

This commit is contained in:
nym21
2025-12-08 17:05:38 +01:00
parent f4a1384dc4
commit 60a38b4108
19 changed files with 262 additions and 114 deletions

View File

@@ -39,6 +39,16 @@ impl<T> AddressGroups<T> {
.chain(self.lt_amount.iter_mut())
}
pub fn par_iter_mut(&mut self) -> impl ParallelIterator<Item = &mut T>
where
T: Send + Sync,
{
self.ge_amount
.par_iter_mut()
.chain(self.amount_range.par_iter_mut())
.chain(self.lt_amount.par_iter_mut())
}
pub fn iter_separate_mut(&mut self) -> impl Iterator<Item = &mut T> {
self.amount_range.iter_mut()
}

View File

@@ -1,5 +1,6 @@
use brk_traversable::Traversable;
use brk_types::Sats;
use rayon::prelude::*;
use super::{AmountFilter, Filter};
@@ -79,4 +80,26 @@ impl<T> ByGreatEqualAmount<T> {
]
.into_iter()
}
pub fn par_iter_mut(&mut self) -> impl ParallelIterator<Item = &mut T>
where
T: Send + Sync,
{
[
&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_par_iter()
}
}

View File

@@ -1,5 +1,6 @@
use brk_traversable::Traversable;
use brk_types::Sats;
use rayon::prelude::*;
use super::{AmountFilter, Filter};
@@ -79,4 +80,26 @@ impl<T> ByLowerThanAmount<T> {
]
.into_iter()
}
pub fn par_iter_mut(&mut self) -> impl ParallelIterator<Item = &mut T>
where
T: Send + Sync,
{
[
&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,
]
.into_par_iter()
}
}

View File

@@ -1,5 +1,6 @@
use super::{Filter, TimeFilter};
use brk_traversable::Traversable;
use rayon::prelude::*;
#[derive(Default, Clone, Traversable)]
pub struct ByMaxAge<T> {
@@ -52,24 +53,9 @@ impl<T> ByMaxAge<T> {
pub fn iter(&self) -> impl Iterator<Item = &T> {
[
&self._1w,
&self._1m,
&self._2m,
&self._3m,
&self._4m,
&self._5m,
&self._6m,
&self._1y,
&self._2y,
&self._3y,
&self._4y,
&self._5y,
&self._6y,
&self._7y,
&self._8y,
&self._10y,
&self._12y,
&self._15y,
&self._1w, &self._1m, &self._2m, &self._3m, &self._4m, &self._5m, &self._6m, &self._1y,
&self._2y, &self._3y, &self._4y, &self._5y, &self._6y, &self._7y, &self._8y,
&self._10y, &self._12y, &self._15y,
]
.into_iter()
}
@@ -97,4 +83,31 @@ impl<T> ByMaxAge<T> {
]
.into_iter()
}
pub fn par_iter_mut(&mut self) -> impl ParallelIterator<Item = &mut T>
where
T: Send + Sync,
{
[
&mut self._1w,
&mut self._1m,
&mut self._2m,
&mut self._3m,
&mut self._4m,
&mut self._5m,
&mut self._6m,
&mut self._1y,
&mut self._2y,
&mut self._3y,
&mut self._4y,
&mut self._5y,
&mut self._6y,
&mut self._7y,
&mut self._8y,
&mut self._10y,
&mut self._12y,
&mut self._15y,
]
.into_par_iter()
}
}

View File

@@ -1,4 +1,5 @@
use brk_traversable::Traversable;
use rayon::prelude::*;
use super::{Filter, TimeFilter};
@@ -53,24 +54,9 @@ impl<T> ByMinAge<T> {
pub fn iter(&self) -> impl Iterator<Item = &T> {
[
&self._1d,
&self._1w,
&self._1m,
&self._2m,
&self._3m,
&self._4m,
&self._5m,
&self._6m,
&self._1y,
&self._2y,
&self._3y,
&self._4y,
&self._5y,
&self._6y,
&self._7y,
&self._8y,
&self._10y,
&self._12y,
&self._1d, &self._1w, &self._1m, &self._2m, &self._3m, &self._4m, &self._5m, &self._6m,
&self._1y, &self._2y, &self._3y, &self._4y, &self._5y, &self._6y, &self._7y, &self._8y,
&self._10y, &self._12y,
]
.into_iter()
}
@@ -98,4 +84,31 @@ impl<T> ByMinAge<T> {
]
.into_iter()
}
pub fn par_iter_mut(&mut self) -> impl ParallelIterator<Item = &mut T>
where
T: Send + Sync,
{
[
&mut self._1d,
&mut self._1w,
&mut self._1m,
&mut self._2m,
&mut self._3m,
&mut self._4m,
&mut self._5m,
&mut self._6m,
&mut self._1y,
&mut self._2y,
&mut self._3y,
&mut self._4y,
&mut self._5y,
&mut self._6y,
&mut self._7y,
&mut self._8y,
&mut self._10y,
&mut self._12y,
]
.into_par_iter()
}
}

View File

@@ -67,6 +67,23 @@ impl<T> UTXOGroups<T> {
.chain(self.type_.iter_mut())
}
pub fn par_iter_mut(&mut self) -> impl ParallelIterator<Item = &mut T>
where
T: Send + Sync,
{
[&mut self.all]
.into_par_iter()
.chain(self.term.par_iter_mut())
.chain(self.max_age.par_iter_mut())
.chain(self.min_age.par_iter_mut())
.chain(self.ge_amount.par_iter_mut())
.chain(self.age_range.par_iter_mut())
.chain(self.epoch.par_iter_mut())
.chain(self.amount_range.par_iter_mut())
.chain(self.lt_amount.par_iter_mut())
.chain(self.type_.par_iter_mut())
}
pub fn iter_separate_mut(&mut self) -> impl Iterator<Item = &mut T> {
self.age_range
.iter_mut()