Skip to main content

core_utils/preprocessing/
mod.rs

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