Struct fancy_garbling::circuit::BinaryCircuit
source · [−]pub struct BinaryCircuit { /* private fields */ }
Expand description
Static representation of binary computation supported by fancy garbling.
Implementations
sourceimpl BinaryCircuit
impl BinaryCircuit
sourcepub fn parse(reader: impl BufRead) -> Result<Self, Error>
pub fn parse(reader: impl BufRead) -> Result<Self, Error>
Generates a new Circuit
from file filename
. The file must follow the
format given here: https://homes.esat.kuleuven.be/~nsmart/MPC/old-circuits.html,
(Bristol Format—the OLD format—not Bristol Fashion—the NEW format) otherwise
a CircuitParserError
is returned.
Trait Implementations
sourceimpl CircuitType for BinaryCircuit
impl CircuitType for BinaryCircuit
type Gate = BinaryGate
type Gate = BinaryGate
Gates that the circuit is composed of
sourcefn push_gates(&mut self, gate: Self::Gate)
fn push_gates(&mut self, gate: Self::Gate)
Add a gate
sourcefn push_const_ref(&mut self, xref: CircuitRef)
fn push_const_ref(&mut self, xref: CircuitRef)
Add a constant ref
sourcefn push_output_ref(&mut self, xref: CircuitRef)
fn push_output_ref(&mut self, xref: CircuitRef)
Add an output ref
sourcefn push_garbler_input_ref(&mut self, xref: CircuitRef)
fn push_garbler_input_ref(&mut self, xref: CircuitRef)
Add a garbler input ref
sourcefn push_modulus(&mut self, modulus: u16)
fn push_modulus(&mut self, modulus: u16)
Add wire moulus
sourcefn push_evaluator_input_ref(&mut self, xref: CircuitRef)
fn push_evaluator_input_ref(&mut self, xref: CircuitRef)
Add an evaluator input ref
sourcefn increment_nonfree_gates(&mut self)
fn increment_nonfree_gates(&mut self)
Increase number of nonfree gates
sourcefn get_num_nonfree_gates(&self) -> usize
fn get_num_nonfree_gates(&self) -> usize
Get number of nonfree gates
sourcefn get_output_refs(&self) -> &[CircuitRef]
fn get_output_refs(&self) -> &[CircuitRef]
Get all output refs
sourcefn get_garbler_input_refs(&self) -> &[CircuitRef]
fn get_garbler_input_refs(&self) -> &[CircuitRef]
Get all garbler input refs
sourcefn get_evaluator_input_refs(&self) -> &[CircuitRef]
fn get_evaluator_input_refs(&self) -> &[CircuitRef]
Get all evaluator input refs
sourcefn garbler_input_mod(&self, _: usize) -> u16
fn garbler_input_mod(&self, _: usize) -> u16
Return the modulus of the garbler input indexed by
i
.sourcefn evaluator_input_mod(&self, _: usize) -> u16
fn evaluator_input_mod(&self, _: usize) -> u16
Return the modulus of the evaluator input indexed by
i
.sourcefn num_garbler_inputs(&self) -> usize
fn num_garbler_inputs(&self) -> usize
Return the number of garbler inputs.
sourcefn num_evaluator_inputs(&self) -> usize
fn num_evaluator_inputs(&self) -> usize
Return the number of evaluator inputs.
sourceimpl Clone for BinaryCircuit
impl Clone for BinaryCircuit
sourcefn clone(&self) -> BinaryCircuit
fn clone(&self) -> BinaryCircuit
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresourceimpl Debug for BinaryCircuit
impl Debug for BinaryCircuit
sourceimpl<F: FancyBinary> EvaluableCircuit<F> for BinaryCircuit
impl<F: FancyBinary> EvaluableCircuit<F> for BinaryCircuit
sourceimpl PartialEq<BinaryCircuit> for BinaryCircuit
impl PartialEq<BinaryCircuit> for BinaryCircuit
sourcefn eq(&self, other: &BinaryCircuit) -> bool
fn eq(&self, other: &BinaryCircuit) -> bool
impl StructuralPartialEq for BinaryCircuit
Auto Trait Implementations
impl RefUnwindSafe for BinaryCircuit
impl Send for BinaryCircuit
impl Sync for BinaryCircuit
impl Unpin for BinaryCircuit
impl UnwindSafe for BinaryCircuit
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
sourceimpl<C> CircuitInfo for Cwhere
C: EvaluableCircuit<Informer<Dummy>>,
impl<C> CircuitInfo for Cwhere
C: EvaluableCircuit<Informer<Dummy>>,
sourcefn print_info(&self) -> Result<(), DummyError>
fn print_info(&self) -> Result<(), DummyError>
Print circuit info
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