pub enum Boolean {
Is(AllocatedBit),
Not(AllocatedBit),
Constant(bool),
}
Expand description
This is a boolean value which may be either a constant or
an interpretation of an AllocatedBit
.
Variants§
Is(AllocatedBit)
Existential view of the boolean variable
Not(AllocatedBit)
Negated view of the boolean variable
Constant(bool)
Constant (not an allocated variable)
Implementations§
Source§impl Boolean
impl Boolean
pub fn is_constant(&self) -> bool
pub fn zero() -> Self
pub fn get_variable(&self) -> Option<&AllocatedBit>
pub fn alloc<E: Engine, CS: ConstraintSystem<E>>( cs: &mut CS, witness: Option<bool>, ) -> Result<Self, SynthesisError>
pub fn enforce_equal<E, CS>(
cs: &mut CS,
a: &Self,
b: &Self,
) -> Result<(), SynthesisError>where
E: Engine,
CS: ConstraintSystem<E>,
pub fn get_constant_value(&self) -> bool
pub fn get_value(&self) -> Option<bool>
pub fn get_value_in_field<E: Engine>(&self) -> Option<E::Fr>
pub fn lc<E: Engine>(&self, coeff: E::Fr) -> LinearCombination<E>
Sourcepub fn xor<'a, E, CS>(
cs: &mut CS,
a: &'a Self,
b: &'a Self,
) -> Result<Self, SynthesisError>where
E: Engine,
CS: ConstraintSystem<E>,
pub fn xor<'a, E, CS>(
cs: &mut CS,
a: &'a Self,
b: &'a Self,
) -> Result<Self, SynthesisError>where
E: Engine,
CS: ConstraintSystem<E>,
Perform XOR over two boolean operands
Sourcepub fn and<'a, E, CS>(
cs: &mut CS,
a: &'a Self,
b: &'a Self,
) -> Result<Self, SynthesisError>where
E: Engine,
CS: ConstraintSystem<E>,
pub fn and<'a, E, CS>(
cs: &mut CS,
a: &'a Self,
b: &'a Self,
) -> Result<Self, SynthesisError>where
E: Engine,
CS: ConstraintSystem<E>,
Perform AND over two boolean operands
Sourcepub fn or<'a, E, CS>(
cs: &mut CS,
a: &'a Self,
b: &'a Self,
) -> Result<Self, SynthesisError>where
E: Engine,
CS: ConstraintSystem<E>,
pub fn or<'a, E, CS>(
cs: &mut CS,
a: &'a Self,
b: &'a Self,
) -> Result<Self, SynthesisError>where
E: Engine,
CS: ConstraintSystem<E>,
Perform OR over two boolean operands
pub fn conditionally_select<E: Engine, CS: ConstraintSystem<E>>( cs: &mut CS, flag: &Self, a: &Self, b: &Self, ) -> Result<Self, SynthesisError>
Sourcepub fn sha256_ch<'a, E, CS>(
cs: &mut CS,
a: &'a Self,
b: &'a Self,
c: &'a Self,
) -> Result<Self, SynthesisError>where
E: Engine,
CS: ConstraintSystem<E>,
pub fn sha256_ch<'a, E, CS>(
cs: &mut CS,
a: &'a Self,
b: &'a Self,
c: &'a Self,
) -> Result<Self, SynthesisError>where
E: Engine,
CS: ConstraintSystem<E>,
Computes (a and b) xor ((not a) and c)
Sourcepub fn sha256_maj<'a, E, CS>(
cs: &mut CS,
a: &'a Self,
b: &'a Self,
c: &'a Self,
) -> Result<Self, SynthesisError>where
E: Engine,
CS: ConstraintSystem<E>,
pub fn sha256_maj<'a, E, CS>(
cs: &mut CS,
a: &'a Self,
b: &'a Self,
c: &'a Self,
) -> Result<Self, SynthesisError>where
E: Engine,
CS: ConstraintSystem<E>,
Computes (a and b) xor (a and c) xor (b and c)
pub fn alloc_multiple<E: Engine, CS: ConstraintSystem<E>, const N: usize>( cs: &mut CS, witness: Option<[bool; N]>, ) -> Result<[Self; N], SynthesisError>
pub fn get_value_multiple<const N: usize>(els: &[Self; N]) -> Option<[bool; N]>
pub fn conditionally_select_multiple<E: Engine, CS: ConstraintSystem<E>, const N: usize>( cs: &mut CS, flag: &Boolean, a: &[Self; N], b: &[Self; N], ) -> Result<[Self; N], SynthesisError>
Trait Implementations§
Source§impl From<AllocatedBit> for Boolean
impl From<AllocatedBit> for Boolean
Source§fn from(b: AllocatedBit) -> Boolean
fn from(b: AllocatedBit) -> Boolean
Converts to this type from the input type.
Source§impl<E: Engine> IntoBytes<E> for Boolean
impl<E: Engine> IntoBytes<E> for Boolean
fn into_le_bytes<CS: ConstraintSystem<E>>( &self, cs: &mut CS, ) -> Result<Vec<Byte<E>>, SynthesisError>
fn into_be_bytes<CS: ConstraintSystem<E>>( &self, cs: &mut CS, ) -> Result<Vec<Byte<E>>, SynthesisError>
fn encoding_len() -> usize
impl Copy for Boolean
Auto Trait Implementations§
impl Freeze for Boolean
impl RefUnwindSafe for Boolean
impl Send for Boolean
impl Sync for Boolean
impl Unpin for Boolean
impl UnwindSafe for Boolean
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more