arcium-core-utils 0.7.1

Arcium core utils
Documentation
use primitives::correlated_randomness::{
    bundler::Bundler,
    dabits::DaBit,
    singlets::Singlet,
    stream::{Next, NextVec},
    triples::Triple,
};

use crate::{config::MpcConfig, errors::AbortError};

pub mod bundler;
pub mod iterator;

// ---------- Type aliases for preprocessing futures --------------

pub type NextSinglet<F> = Next<Singlet<F>, AbortError>;
pub type NextTriple<F> = Next<Triple<F>, AbortError>;
pub type NextDaBit<F> = Next<DaBit<F>, AbortError>;

pub type NextSinglets<F> = NextVec<Singlet<F>, AbortError>;
pub type NextTriples<F> = NextVec<Triple<F>, AbortError>;
pub type NextDaBits<F> = NextVec<DaBit<F>, AbortError>;

// ---------- PreprocessingBundler trait alias -------------------

/// Alias for any [`Bundler`] whose iterator is the curve-parameterised
/// [`iterator::PreprocessingIterator<C>`].
pub trait PreprocessingBundler<C: MpcConfig>:
    Bundler<Iterator = iterator::PreprocessingIterator<C>>
{
}

impl<C: MpcConfig, T: Bundler<Iterator = iterator::PreprocessingIterator<C>>>
    PreprocessingBundler<C> for T
{
}