Struct fancy_garbling::dummy::Dummy
source · [−]pub struct Dummy {}
Expand description
Simple struct that performs the fancy computation over u16
.
Implementations
Trait Implementations
sourceimpl Fancy for Dummy
impl Fancy for Dummy
type Error = DummyError
type Error = DummyError
Errors which may be thrown by the users of Fancy.
sourcefn constant(&mut self, val: u16, modulus: u16) -> Result<DummyVal, Self::Error>
fn constant(&mut self, val: u16, modulus: u16) -> Result<DummyVal, Self::Error>
Create a constant
x
with modulus q
.sourceimpl FancyArithmetic for Dummy
impl FancyArithmetic for Dummy
sourcefn sub(&mut self, x: &DummyVal, y: &DummyVal) -> Result<DummyVal, Self::Error>
fn sub(&mut self, x: &DummyVal, y: &DummyVal) -> Result<DummyVal, Self::Error>
Subtract
x
and y
.sourcefn cmul(&mut self, x: &DummyVal, c: u16) -> Result<DummyVal, Self::Error>
fn cmul(&mut self, x: &DummyVal, c: u16) -> Result<DummyVal, Self::Error>
Multiply
x
times the constant c
.sourcefn mul(&mut self, x: &DummyVal, y: &DummyVal) -> Result<DummyVal, Self::Error>
fn mul(&mut self, x: &DummyVal, y: &DummyVal) -> Result<DummyVal, Self::Error>
Multiply
x
and y
.sourcefn proj(
&mut self,
x: &DummyVal,
modulus: u16,
tt: Option<Vec<u16>>
) -> Result<DummyVal, Self::Error>
fn proj(
&mut self,
x: &DummyVal,
modulus: u16,
tt: Option<Vec<u16>>
) -> Result<DummyVal, Self::Error>
sourceimpl FancyBinary for Dummy
impl FancyBinary for Dummy
sourcefn xor(
&mut self,
x: &Self::Item,
y: &Self::Item
) -> Result<Self::Item, Self::Error>
fn xor(
&mut self,
x: &Self::Item,
y: &Self::Item
) -> Result<Self::Item, Self::Error>
Binary Xor
sourcefn and(
&mut self,
x: &Self::Item,
y: &Self::Item
) -> Result<Self::Item, Self::Error>
fn and(
&mut self,
x: &Self::Item,
y: &Self::Item
) -> Result<Self::Item, Self::Error>
Binary And
sourcefn or(
&mut self,
x: &Self::Item,
y: &Self::Item
) -> Result<Self::Item, Self::Error>
fn or(
&mut self,
x: &Self::Item,
y: &Self::Item
) -> Result<Self::Item, Self::Error>
Uses Demorgan’s Rule implemented with an and gate and negation.
sourcefn adder(
&mut self,
x: &Self::Item,
y: &Self::Item,
carry_in: Option<&Self::Item>
) -> Result<(Self::Item, Self::Item), Self::Error>
fn adder(
&mut self,
x: &Self::Item,
y: &Self::Item,
carry_in: Option<&Self::Item>
) -> Result<(Self::Item, Self::Item), Self::Error>
Binary adder. Returns the result and the carry.
sourcefn and_many(&mut self, args: &[Self::Item]) -> Result<Self::Item, Self::Error>
fn and_many(&mut self, args: &[Self::Item]) -> Result<Self::Item, Self::Error>
Returns 1 if all wires equal 1.
sourcefn or_many(&mut self, args: &[Self::Item]) -> Result<Self::Item, Self::Error>
fn or_many(&mut self, args: &[Self::Item]) -> Result<Self::Item, Self::Error>
Returns 1 if any wire equals 1.
sourcefn xor_many(&mut self, args: &[Self::Item]) -> Result<Self::Item, Self::Error>
fn xor_many(&mut self, args: &[Self::Item]) -> Result<Self::Item, Self::Error>
XOR many wires together
sourceimpl FancyInput for Dummy
impl FancyInput for Dummy
sourcefn encode(&mut self, value: u16, modulus: u16) -> Result<DummyVal, DummyError>
fn encode(&mut self, value: u16, modulus: u16) -> Result<DummyVal, DummyError>
Encode a single dummy value.
sourcefn encode_many(
&mut self,
xs: &[u16],
moduli: &[u16]
) -> Result<Vec<DummyVal>, DummyError>
fn encode_many(
&mut self,
xs: &[u16],
moduli: &[u16]
) -> Result<Vec<DummyVal>, DummyError>
Encode a slice of inputs and a slice of moduli as DummyVals.
type Error = DummyError
type Error = DummyError
The type of error that this Fancy object emits.
sourcefn receive_many(&mut self, _moduli: &[u16]) -> Result<Vec<DummyVal>, DummyError>
fn receive_many(&mut self, _moduli: &[u16]) -> Result<Vec<DummyVal>, DummyError>
Receive many values where the input is not known.
sourcefn encode_bundle(
&mut self,
values: &[u16],
moduli: &[u16]
) -> Result<Bundle<Self::Item>, Self::Error>
fn encode_bundle(
&mut self,
values: &[u16],
moduli: &[u16]
) -> Result<Bundle<Self::Item>, Self::Error>
Encode a bundle.
sourcefn receive_bundle(
&mut self,
moduli: &[u16]
) -> Result<Bundle<Self::Item>, Self::Error>
fn receive_bundle(
&mut self,
moduli: &[u16]
) -> Result<Bundle<Self::Item>, Self::Error>
Receive a bundle.
sourcefn encode_bundles(
&mut self,
values: &[Vec<u16>],
moduli: &[Vec<u16>]
) -> Result<Vec<Bundle<Self::Item>>, Self::Error>
fn encode_bundles(
&mut self,
values: &[Vec<u16>],
moduli: &[Vec<u16>]
) -> Result<Vec<Bundle<Self::Item>>, Self::Error>
Encode many input bundles.
sourcefn receive_many_bundles(
&mut self,
moduli: &[Vec<u16>]
) -> Result<Vec<Bundle<Self::Item>>, Self::Error>
fn receive_many_bundles(
&mut self,
moduli: &[Vec<u16>]
) -> Result<Vec<Bundle<Self::Item>>, Self::Error>
Receive many input bundles.
sourcefn crt_encode(
&mut self,
value: u128,
modulus: u128
) -> Result<CrtBundle<Self::Item>, Self::Error>
fn crt_encode(
&mut self,
value: u128,
modulus: u128
) -> Result<CrtBundle<Self::Item>, Self::Error>
Encode a CRT input bundle.
sourcefn crt_receive(
&mut self,
modulus: u128
) -> Result<CrtBundle<Self::Item>, Self::Error>
fn crt_receive(
&mut self,
modulus: u128
) -> Result<CrtBundle<Self::Item>, Self::Error>
Receive an CRT input bundle.
sourcefn crt_encode_many(
&mut self,
values: &[u128],
modulus: u128
) -> Result<Vec<CrtBundle<Self::Item>>, Self::Error>
fn crt_encode_many(
&mut self,
values: &[u128],
modulus: u128
) -> Result<Vec<CrtBundle<Self::Item>>, Self::Error>
Encode many CRT input bundles.
sourcefn crt_receive_many(
&mut self,
n: usize,
modulus: u128
) -> Result<Vec<CrtBundle<Self::Item>>, Self::Error>
fn crt_receive_many(
&mut self,
n: usize,
modulus: u128
) -> Result<Vec<CrtBundle<Self::Item>>, Self::Error>
Receive many CRT input bundles.
sourcefn bin_encode(
&mut self,
value: u128,
nbits: usize
) -> Result<BinaryBundle<Self::Item>, Self::Error>
fn bin_encode(
&mut self,
value: u128,
nbits: usize
) -> Result<BinaryBundle<Self::Item>, Self::Error>
Encode a binary input bundle.
sourcefn bin_receive(
&mut self,
nbits: usize
) -> Result<BinaryBundle<Self::Item>, Self::Error>
fn bin_receive(
&mut self,
nbits: usize
) -> Result<BinaryBundle<Self::Item>, Self::Error>
Receive an binary input bundle.
sourcefn bin_encode_many(
&mut self,
values: &[u128],
nbits: usize
) -> Result<Vec<BinaryBundle<Self::Item>>, Self::Error>
fn bin_encode_many(
&mut self,
values: &[u128],
nbits: usize
) -> Result<Vec<BinaryBundle<Self::Item>>, Self::Error>
Encode many binary input bundles.
sourcefn bin_receive_many(
&mut self,
ninputs: usize,
nbits: usize
) -> Result<Vec<BinaryBundle<Self::Item>>, Self::Error>
fn bin_receive_many(
&mut self,
ninputs: usize,
nbits: usize
) -> Result<Vec<BinaryBundle<Self::Item>>, Self::Error>
Receive many binary input bundles.
sourceimpl FancyReveal for Dummy
impl FancyReveal for Dummy
sourcefn reveal(&mut self, x: &DummyVal) -> Result<u16, DummyError>
fn reveal(&mut self, x: &DummyVal) -> Result<u16, DummyError>
Reveal the contents of
x
to all parties.sourcefn reveal_many(&mut self, xs: &[Self::Item]) -> Result<Vec<u16>, Self::Error>
fn reveal_many(&mut self, xs: &[Self::Item]) -> Result<Vec<u16>, Self::Error>
Reveal a slice of items to all parties.
sourcefn reveal_bundle(
&mut self,
x: &Bundle<Self::Item>
) -> Result<Vec<u16>, Self::Error>
fn reveal_bundle(
&mut self,
x: &Bundle<Self::Item>
) -> Result<Vec<u16>, Self::Error>
Reveal a bundle to all parties.
sourcefn reveal_many_bundles(
&mut self,
xs: &[Bundle<Self::Item>]
) -> Result<Vec<Vec<u16>>, Self::Error>
fn reveal_many_bundles(
&mut self,
xs: &[Bundle<Self::Item>]
) -> Result<Vec<Vec<u16>>, Self::Error>
Reveal many bundles to all parties.
sourcefn crt_reveal(&mut self, x: &CrtBundle<Self::Item>) -> Result<u128, Self::Error>
fn crt_reveal(&mut self, x: &CrtBundle<Self::Item>) -> Result<u128, Self::Error>
Reveal a CRT bundle to all parties.
sourcefn crt_reveal_many(
&mut self,
xs: &[CrtBundle<Self::Item>]
) -> Result<Vec<u128>, Self::Error>
fn crt_reveal_many(
&mut self,
xs: &[CrtBundle<Self::Item>]
) -> Result<Vec<u128>, Self::Error>
Reveal many CRT bundles to all parties.
sourcefn bin_reveal(
&mut self,
x: &BinaryBundle<Self::Item>
) -> Result<u128, Self::Error>
fn bin_reveal(
&mut self,
x: &BinaryBundle<Self::Item>
) -> Result<u128, Self::Error>
Reveal a binary bundle to all parties.
sourcefn bin_reveal_many(
&mut self,
xs: &[BinaryBundle<Self::Item>]
) -> Result<Vec<u128>, Self::Error>
fn bin_reveal_many(
&mut self,
xs: &[BinaryBundle<Self::Item>]
) -> Result<Vec<u128>, Self::Error>
Reveal many binary bundles to all parties.
Auto Trait Implementations
impl RefUnwindSafe for Dummy
impl Send for Dummy
impl Sync for Dummy
impl Unpin for Dummy
impl UnwindSafe for Dummy
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<T> FmtForward for T
impl<T> FmtForward for T
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
Causes
self
to use its Binary
implementation when Debug
-formatted.fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
Causes
self
to use its Octal
implementation when Debug
-formatted.fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
Formats each item in a sequence. Read more
impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
Pipes by value. This is generally the method you want to use. Read more
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
Borrows
self
and passes that borrow into the pipe function. Read morefn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
Mutably borrows
self
and passes that borrow into the pipe function. Read morefn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> Rwhere
Self: Borrow<B>,
B: 'a + ?Sized,
R: 'a,
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> Rwhere
Self: Borrow<B>,
B: 'a + ?Sized,
R: 'a,
fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R
) -> Rwhere
Self: BorrowMut<B>,
B: 'a + ?Sized,
R: 'a,
fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R
) -> Rwhere
Self: BorrowMut<B>,
B: 'a + ?Sized,
R: 'a,
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> Rwhere
Self: AsRef<U>,
U: 'a + ?Sized,
R: 'a,
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> Rwhere
Self: AsRef<U>,
U: 'a + ?Sized,
R: 'a,
Borrows
self
, then passes self.as_ref()
into the pipe function.fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> Rwhere
Self: AsMut<U>,
U: 'a + ?Sized,
R: 'a,
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> Rwhere
Self: AsMut<U>,
U: 'a + ?Sized,
R: 'a,
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> Rwhere
Self: Deref<Target = T>,
T: 'a + ?Sized,
R: 'a,
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> Rwhere
Self: Deref<Target = T>,
T: 'a + ?Sized,
R: 'a,
Borrows
self
, then passes self.deref()
into the pipe function.impl<T> Tap for T
impl<T> Tap for T
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Selfwhere
Self: Borrow<B>,
B: ?Sized,
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Selfwhere
Self: Borrow<B>,
B: ?Sized,
Immutable access to the
Borrow<B>
of a value. Read morefn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
Self: BorrowMut<B>,
B: ?Sized,
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
Self: BorrowMut<B>,
B: ?Sized,
Mutable access to the
BorrowMut<B>
of a value. Read morefn tap_ref<R>(self, func: impl FnOnce(&R)) -> Selfwhere
Self: AsRef<R>,
R: ?Sized,
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Selfwhere
Self: AsRef<R>,
R: ?Sized,
Immutable access to the
AsRef<R>
view of a value. Read morefn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere
Self: AsMut<R>,
R: ?Sized,
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere
Self: AsMut<R>,
R: ?Sized,
Mutable access to the
AsMut<R>
view of a value. Read morefn tap_deref<T>(self, func: impl FnOnce(&T)) -> Selfwhere
Self: Deref<Target = T>,
T: ?Sized,
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Selfwhere
Self: Deref<Target = T>,
T: ?Sized,
Immutable access to the
Deref::Target
of a value. Read morefn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Selfwhere
Self: DerefMut<Target = T> + Deref,
T: ?Sized,
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Selfwhere
Self: DerefMut<Target = T> + Deref,
T: ?Sized,
Mutable access to the
Deref::Target
of a value. Read morefn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
Calls
.tap()
only in debug builds, and is erased in release builds.fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
Calls
.tap_mut()
only in debug builds, and is erased in release
builds. Read morefn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Selfwhere
Self: Borrow<B>,
B: ?Sized,
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Selfwhere
Self: Borrow<B>,
B: ?Sized,
Calls
.tap_borrow()
only in debug builds, and is erased in release
builds. Read morefn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
Self: BorrowMut<B>,
B: ?Sized,
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
Self: BorrowMut<B>,
B: ?Sized,
Calls
.tap_borrow_mut()
only in debug builds, and is erased in release
builds. Read morefn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Selfwhere
Self: AsRef<R>,
R: ?Sized,
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Selfwhere
Self: AsRef<R>,
R: ?Sized,
Calls
.tap_ref()
only in debug builds, and is erased in release
builds. Read morefn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere
Self: AsMut<R>,
R: ?Sized,
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere
Self: AsMut<R>,
R: ?Sized,
Calls
.tap_ref_mut()
only in debug builds, and is erased in release
builds. Read more