Skip to main content

core_utils/preprocessing/
mod.rs

1use primitives::correlated_randomness::{
2    bundler::Bundler,
3    dabits::DaBit,
4    singlets::Singlet,
5    stream::{Next, NextVec},
6    triples::Triple,
7};
8
9use crate::{config::MpcConfig, errors::AbortError};
10
11pub mod bundler;
12pub mod iterator;
13
14// ---------- Type aliases for preprocessing futures --------------
15
16pub type NextSinglet<F> = Next<Singlet<F>, AbortError>;
17pub type NextTriple<F> = Next<Triple<F>, AbortError>;
18pub type NextDaBit<F> = Next<DaBit<F>, AbortError>;
19
20pub type NextSinglets<F> = NextVec<Singlet<F>, AbortError>;
21pub type NextTriples<F> = NextVec<Triple<F>, AbortError>;
22pub type NextDaBits<F> = NextVec<DaBit<F>, AbortError>;
23
24// ---------- PreprocessingBundler trait alias -------------------
25
26/// Alias for any [`Bundler`] whose iterator is the curve-parameterised
27/// [`iterator::PreprocessingIterator<C>`].
28pub trait PreprocessingBundler<C: MpcConfig>:
29    Bundler<Iterator = iterator::PreprocessingIterator<C>>
30{
31}
32
33impl<C: MpcConfig, T: Bundler<Iterator = iterator::PreprocessingIterator<C>>>
34    PreprocessingBundler<C> for T
35{
36}