pub trait FancyInput {
type Item: Clone + HasModulus;
Show 16 methods
// Required methods
fn encode_many(
&mut self,
values: &[u16],
moduli: &[u16],
channel: &mut Channel<'_>,
) -> Result<Vec<Self::Item>>;
fn receive_many(
&mut self,
moduli: &[u16],
channel: &mut Channel<'_>,
) -> Result<Vec<Self::Item>>;
// Provided methods
fn encode(
&mut self,
value: u16,
modulus: u16,
channel: &mut Channel<'_>,
) -> Result<Self::Item> { ... }
fn receive(
&mut self,
modulus: u16,
channel: &mut Channel<'_>,
) -> Result<Self::Item> { ... }
fn encode_bundle(
&mut self,
values: &[u16],
moduli: &[u16],
channel: &mut Channel<'_>,
) -> Result<Bundle<Self::Item>> { ... }
fn receive_bundle(
&mut self,
moduli: &[u16],
channel: &mut Channel<'_>,
) -> Result<Bundle<Self::Item>> { ... }
fn encode_bundles(
&mut self,
values: &[Vec<u16>],
moduli: &[Vec<u16>],
channel: &mut Channel<'_>,
) -> Result<Vec<Bundle<Self::Item>>> { ... }
fn receive_many_bundles(
&mut self,
moduli: &[Vec<u16>],
channel: &mut Channel<'_>,
) -> Result<Vec<Bundle<Self::Item>>> { ... }
fn crt_encode(
&mut self,
value: u128,
modulus: u128,
channel: &mut Channel<'_>,
) -> Result<CrtBundle<Self::Item>> { ... }
fn crt_receive(
&mut self,
modulus: u128,
channel: &mut Channel<'_>,
) -> Result<CrtBundle<Self::Item>> { ... }
fn crt_encode_many(
&mut self,
values: &[u128],
modulus: u128,
channel: &mut Channel<'_>,
) -> Result<Vec<CrtBundle<Self::Item>>> { ... }
fn crt_receive_many(
&mut self,
n: usize,
modulus: u128,
channel: &mut Channel<'_>,
) -> Result<Vec<CrtBundle<Self::Item>>> { ... }
fn bin_encode(
&mut self,
value: u128,
nbits: usize,
channel: &mut Channel<'_>,
) -> Result<BinaryBundle<Self::Item>> { ... }
fn bin_receive(
&mut self,
nbits: usize,
channel: &mut Channel<'_>,
) -> Result<BinaryBundle<Self::Item>> { ... }
fn bin_encode_many(
&mut self,
values: &[u128],
nbits: usize,
channel: &mut Channel<'_>,
) -> Result<Vec<BinaryBundle<Self::Item>>> { ... }
fn bin_receive_many(
&mut self,
ninputs: usize,
nbits: usize,
channel: &mut Channel<'_>,
) -> Result<Vec<BinaryBundle<Self::Item>>> { ... }
}Expand description
Convenience functions for encoding input to Fancy objects.
Required Associated Types§
Sourcetype Item: Clone + HasModulus
type Item: Clone + HasModulus
The type that this Fancy object operates over.
Required Methods§
Sourcefn encode_many(
&mut self,
values: &[u16],
moduli: &[u16],
channel: &mut Channel<'_>,
) -> Result<Vec<Self::Item>>
fn encode_many( &mut self, values: &[u16], moduli: &[u16], channel: &mut Channel<'_>, ) -> Result<Vec<Self::Item>>
Encode many values where the actual input is known.
When writing a garbler, the return value must correspond to the zero wire label.
Sourcefn receive_many(
&mut self,
moduli: &[u16],
channel: &mut Channel<'_>,
) -> Result<Vec<Self::Item>>
fn receive_many( &mut self, moduli: &[u16], channel: &mut Channel<'_>, ) -> Result<Vec<Self::Item>>
Receive many values where the input is not known.
Provided Methods§
Sourcefn encode(
&mut self,
value: u16,
modulus: u16,
channel: &mut Channel<'_>,
) -> Result<Self::Item>
fn encode( &mut self, value: u16, modulus: u16, channel: &mut Channel<'_>, ) -> Result<Self::Item>
Encode a single value.
When writing a garbler, the return value must correspond to the zero wire label.
Sourcefn receive(
&mut self,
modulus: u16,
channel: &mut Channel<'_>,
) -> Result<Self::Item>
fn receive( &mut self, modulus: u16, channel: &mut Channel<'_>, ) -> Result<Self::Item>
Receive a single value.
Sourcefn encode_bundle(
&mut self,
values: &[u16],
moduli: &[u16],
channel: &mut Channel<'_>,
) -> Result<Bundle<Self::Item>>
fn encode_bundle( &mut self, values: &[u16], moduli: &[u16], channel: &mut Channel<'_>, ) -> Result<Bundle<Self::Item>>
Encode a bundle.
Sourcefn receive_bundle(
&mut self,
moduli: &[u16],
channel: &mut Channel<'_>,
) -> Result<Bundle<Self::Item>>
fn receive_bundle( &mut self, moduli: &[u16], channel: &mut Channel<'_>, ) -> Result<Bundle<Self::Item>>
Receive a bundle.
Sourcefn encode_bundles(
&mut self,
values: &[Vec<u16>],
moduli: &[Vec<u16>],
channel: &mut Channel<'_>,
) -> Result<Vec<Bundle<Self::Item>>>
fn encode_bundles( &mut self, values: &[Vec<u16>], moduli: &[Vec<u16>], channel: &mut Channel<'_>, ) -> Result<Vec<Bundle<Self::Item>>>
Sourcefn receive_many_bundles(
&mut self,
moduli: &[Vec<u16>],
channel: &mut Channel<'_>,
) -> Result<Vec<Bundle<Self::Item>>>
fn receive_many_bundles( &mut self, moduli: &[Vec<u16>], channel: &mut Channel<'_>, ) -> Result<Vec<Bundle<Self::Item>>>
Receive many input bundles.
Sourcefn crt_encode(
&mut self,
value: u128,
modulus: u128,
channel: &mut Channel<'_>,
) -> Result<CrtBundle<Self::Item>>
fn crt_encode( &mut self, value: u128, modulus: u128, channel: &mut Channel<'_>, ) -> Result<CrtBundle<Self::Item>>
Encode a CRT input bundle.
Sourcefn crt_receive(
&mut self,
modulus: u128,
channel: &mut Channel<'_>,
) -> Result<CrtBundle<Self::Item>>
fn crt_receive( &mut self, modulus: u128, channel: &mut Channel<'_>, ) -> Result<CrtBundle<Self::Item>>
Receive an CRT input bundle.
Sourcefn crt_encode_many(
&mut self,
values: &[u128],
modulus: u128,
channel: &mut Channel<'_>,
) -> Result<Vec<CrtBundle<Self::Item>>>
fn crt_encode_many( &mut self, values: &[u128], modulus: u128, channel: &mut Channel<'_>, ) -> Result<Vec<CrtBundle<Self::Item>>>
Encode many CRT input bundles.
Sourcefn crt_receive_many(
&mut self,
n: usize,
modulus: u128,
channel: &mut Channel<'_>,
) -> Result<Vec<CrtBundle<Self::Item>>>
fn crt_receive_many( &mut self, n: usize, modulus: u128, channel: &mut Channel<'_>, ) -> Result<Vec<CrtBundle<Self::Item>>>
Receive many CRT input bundles.
Sourcefn bin_encode(
&mut self,
value: u128,
nbits: usize,
channel: &mut Channel<'_>,
) -> Result<BinaryBundle<Self::Item>>
fn bin_encode( &mut self, value: u128, nbits: usize, channel: &mut Channel<'_>, ) -> Result<BinaryBundle<Self::Item>>
Encode a binary input bundle.
Sourcefn bin_receive(
&mut self,
nbits: usize,
channel: &mut Channel<'_>,
) -> Result<BinaryBundle<Self::Item>>
fn bin_receive( &mut self, nbits: usize, channel: &mut Channel<'_>, ) -> Result<BinaryBundle<Self::Item>>
Receive an binary input bundle.
Sourcefn bin_encode_many(
&mut self,
values: &[u128],
nbits: usize,
channel: &mut Channel<'_>,
) -> Result<Vec<BinaryBundle<Self::Item>>>
fn bin_encode_many( &mut self, values: &[u128], nbits: usize, channel: &mut Channel<'_>, ) -> Result<Vec<BinaryBundle<Self::Item>>>
Encode many binary input bundles.
Sourcefn bin_receive_many(
&mut self,
ninputs: usize,
nbits: usize,
channel: &mut Channel<'_>,
) -> Result<Vec<BinaryBundle<Self::Item>>>
fn bin_receive_many( &mut self, ninputs: usize, nbits: usize, channel: &mut Channel<'_>, ) -> Result<Vec<BinaryBundle<Self::Item>>>
Receive many binary input bundles.