Trait seec::protocols::FunctionDependentSetup

source ·
pub trait FunctionDependentSetup<P: Protocol, Idx> {
    type Error;

    // Required methods
    fn setup<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 mut self,
        shares: &'life1 GateOutputs<P::ShareStorage>,
        circuit: &'life2 ExecutableCircuit<P::Plain, P::Gate, Idx>
    ) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait,
             'life2: 'async_trait;
    fn request_setup_output<'life0, 'async_trait>(
        &'life0 mut self,
        count: usize
    ) -> Pin<Box<dyn Future<Output = Result<P::SetupStorage, Self::Error>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
}

Required Associated Types§

Required Methods§

source

fn setup<'life0, 'life1, 'life2, 'async_trait>( &'life0 mut self, shares: &'life1 GateOutputs<P::ShareStorage>, circuit: &'life2 ExecutableCircuit<P::Plain, P::Gate, Idx> ) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Called in the function-dependent setup phase

source

fn request_setup_output<'life0, 'async_trait>( &'life0 mut self, count: usize ) -> Pin<Box<dyn Future<Output = Result<P::SetupStorage, Self::Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Called in the online phase for each layer. This method can be used to interleave the setup and online phase.

Implementors§

source§

impl<FDS, P, Idx> FunctionDependentSetup<P, Idx> for ErasedError<FDS>
where P: Protocol, Idx: Sync, FDS: FunctionDependentSetup<P, Idx> + Send, FDS::Error: Error + Send + Sync + 'static,

§

type Error = BoxError

source§

impl<Idx> FunctionDependentSetup<BooleanAby2, Idx> for AstraSetupProvider
where Idx: GateIdx,

source§

impl<MtpErr, Mtp, Idx> FunctionDependentSetup<BooleanAby2, Idx> for seec::protocols::aby2::AbySetupProvider<Mtp>
where MtpErr: Error + Send + Sync + Debug + 'static, Mtp: MTProvider<Output = MulTriples, Error = MtpErr> + Send, Idx: GateIdx,

source§

impl<MtpErr, Mtp, Idx: GateIdx> FunctionDependentSetup<BoolTensorAby2, Idx> for seec::protocols::tensor_aby2::AbySetupProvider<Mtp>
where MtpErr: Error + Send + Sync + Debug + 'static, Mtp: MTProvider<Output = MulTriples, Error = MtpErr> + Send,

source§

impl<P, Idx, Mtp> FunctionDependentSetup<P, Idx> for Mtp
where P: Protocol, Idx: Send + Sync, Mtp: MTProvider<Output = P::SetupStorage> + Send,

§

type Error = <Mtp as MTProvider>::Error