Trait seec::circuit::builder::SubCircuitInput

source ·
pub trait SubCircuitInput {
    type Input<'a>;
    type Size: Clone;
    type Protocol: Protocol;
    type Idx: GateIdx;

    // Required methods
    fn with_input<F, R>(self, for_circuit: CircuitId, f: F) -> R
       where for<'a> F: FnOnce(Self::Input<'a>) -> R;
    fn size(&self) -> Self::Size;
    fn flatten(self) -> Vec<Secret<Self::Protocol, Self::Idx>>;
}

Required Associated Types§

Required Methods§

source

fn with_input<F, R>(self, for_circuit: CircuitId, f: F) -> R
where for<'a> F: FnOnce(Self::Input<'a>) -> R,

source

fn size(&self) -> Self::Size

source

fn flatten(self) -> Vec<Secret<Self::Protocol, Self::Idx>>

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl<Idx: GateIdx> SubCircuitInput for &[Secret<BooleanGmw, Idx>]

§

type Input<'a> = &'a [Secret<BooleanGmw, Idx>]

§

type Size = usize

§

type Protocol = BooleanGmw

§

type Idx = Idx

source§

fn with_input<F, R>(self, for_circuit: CircuitId, f: F) -> R
where for<'a> F: FnOnce(Self::Input<'a>) -> R,

source§

fn size(&self) -> Self::Size

source§

fn flatten(self) -> Vec<Secret<BooleanGmw, Idx>>

source§

impl<Idx: GateIdx, const N: usize> SubCircuitInput for &[[Secret<BooleanGmw, Idx>; N]]

§

type Input<'a> = &'a [[Secret<BooleanGmw, Idx>; N]]

§

type Size = usize

§

type Protocol = BooleanGmw

§

type Idx = Idx

source§

fn with_input<F, R>(self, for_circuit: CircuitId, f: F) -> R
where for<'a> F: FnOnce(Self::Input<'a>) -> R,

source§

fn size(&self) -> Self::Size

source§

fn flatten(self) -> Vec<Secret<BooleanGmw, Idx>>

Implementors§