Enum snarkvm_wasm::traits::utilities::boolean::Boolean [−][src]
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
impl Boolean
[src]
impl Boolean
[src]pub fn get_value(&self) -> Option<bool>
[src]
pub fn lc<F>(&self, one: Variable, coeff: F) -> LinearCombination<F> where
F: Field,
[src]
F: Field,
pub fn constant_u8_vec<F, CS>(
cs: &mut CS,
values: &[u8]
) -> Vec<Boolean, Global> where
CS: ConstraintSystem<F>,
F: Field,
[src]
pub fn constant_u8_vec<F, CS>(
cs: &mut CS,
values: &[u8]
) -> Vec<Boolean, Global> where
CS: ConstraintSystem<F>,
F: Field,
[src]Construct a boolean vector from a vector of u8
pub fn or<F, CS>(
cs: CS,
a: &'a Boolean,
b: &'a Boolean
) -> Result<Boolean, SynthesisError> where
CS: ConstraintSystem<F>,
F: Field,
[src]
pub fn or<F, CS>(
cs: CS,
a: &'a Boolean,
b: &'a Boolean
) -> Result<Boolean, SynthesisError> where
CS: ConstraintSystem<F>,
F: Field,
[src]Perform OR over two boolean operands.
pub fn and<F, CS>(
cs: CS,
a: &'a Boolean,
b: &'a Boolean
) -> Result<Boolean, SynthesisError> where
CS: ConstraintSystem<F>,
F: Field,
[src]
pub fn and<F, CS>(
cs: CS,
a: &'a Boolean,
b: &'a Boolean
) -> Result<Boolean, SynthesisError> where
CS: ConstraintSystem<F>,
F: Field,
[src]Perform AND over two boolean operands.
pub fn kary_and<F, CS>(
cs: CS,
bits: &[Boolean]
) -> Result<Boolean, SynthesisError> where
CS: ConstraintSystem<F>,
F: Field,
[src]
pub fn kary_and<F, CS>(
cs: CS,
bits: &[Boolean]
) -> Result<Boolean, SynthesisError> where
CS: ConstraintSystem<F>,
F: Field,
[src]Perform AND over all the given boolean operands.
pub fn enforce_nand<F, CS>(
cs: CS,
bits: &[Boolean]
) -> Result<(), SynthesisError> where
CS: ConstraintSystem<F>,
F: Field,
[src]
pub fn enforce_nand<F, CS>(
cs: CS,
bits: &[Boolean]
) -> Result<(), SynthesisError> where
CS: ConstraintSystem<F>,
F: Field,
[src]Asserts that at least one operand is false.
pub fn enforce_in_field<F, CS, NativeF>(
cs: CS,
bits: &[Boolean]
) -> Result<(), SynthesisError> where
CS: ConstraintSystem<F>,
F: Field,
NativeF: PrimeField,
[src]
pub fn enforce_in_field<F, CS, NativeF>(
cs: CS,
bits: &[Boolean]
) -> Result<(), SynthesisError> where
CS: ConstraintSystem<F>,
F: Field,
NativeF: PrimeField,
[src]Asserts that this bit_gadget representation is “in the field” when interpreted in big endian.
pub fn enforce_in_field_le<F, CS>(
cs: CS,
bits: &[Boolean]
) -> Result<(), SynthesisError> where
CS: ConstraintSystem<F>,
F: Field,
[src]
pub fn enforce_in_field_le<F, CS>(
cs: CS,
bits: &[Boolean]
) -> Result<(), SynthesisError> where
CS: ConstraintSystem<F>,
F: Field,
[src]Enforces that bits
, when interpreted as a integer, is less than
F::characteristic()
, That is, interpret bits as a little-endian
integer, and enforce that this integer is “in the field Z_p”, where
p = F::characteristic()
.
pub fn kary_nand<F, CS>(
cs: CS,
bits: &[Boolean]
) -> Result<Boolean, SynthesisError> where
CS: ConstraintSystem<F>,
F: Field,
[src]
cs: CS,
bits: &[Boolean]
) -> Result<Boolean, SynthesisError> where
CS: ConstraintSystem<F>,
F: Field,
pub fn enforce_smaller_or_equal_than_le<F, CS>(
cs: CS,
bits: &[Boolean],
element: impl AsRef<[u64]>
) -> Result<Vec<Boolean, Global>, SynthesisError> where
CS: ConstraintSystem<F>,
F: Field,
[src]
cs: CS,
bits: &[Boolean],
element: impl AsRef<[u64]>
) -> Result<Vec<Boolean, Global>, SynthesisError> where
CS: ConstraintSystem<F>,
F: Field,
pub fn enforce_smaller_or_equal_than_be<F, CS>(
cs: CS,
bits: &[Boolean],
element: impl AsRef<[u64]>
) -> Result<Vec<Boolean, Global>, SynthesisError> where
CS: ConstraintSystem<F>,
F: Field,
[src]
cs: CS,
bits: &[Boolean],
element: impl AsRef<[u64]>
) -> Result<Vec<Boolean, Global>, SynthesisError> where
CS: ConstraintSystem<F>,
F: Field,
Trait Implementations
impl<F> AllocGadget<bool, F> for Boolean where
F: Field,
[src]
impl<F> AllocGadget<bool, F> for Boolean where
F: Field,
[src]pub fn alloc<Fn, T, CS>(
cs: CS,
value_gen: Fn
) -> Result<Boolean, SynthesisError> where
Fn: FnOnce() -> Result<T, SynthesisError>,
CS: ConstraintSystem<F>,
T: Borrow<bool>,
[src]
cs: CS,
value_gen: Fn
) -> Result<Boolean, SynthesisError> where
Fn: FnOnce() -> Result<T, SynthesisError>,
CS: ConstraintSystem<F>,
T: Borrow<bool>,
pub fn alloc_input<Fn, T, CS>(
cs: CS,
value_gen: Fn
) -> Result<Boolean, SynthesisError> where
Fn: FnOnce() -> Result<T, SynthesisError>,
CS: ConstraintSystem<F>,
T: Borrow<bool>,
[src]
cs: CS,
value_gen: Fn
) -> Result<Boolean, SynthesisError> where
Fn: FnOnce() -> Result<T, SynthesisError>,
CS: ConstraintSystem<F>,
T: Borrow<bool>,
fn alloc_constant<Fn, T, CS>(_cs: CS, _f: Fn) -> Result<Self, SynthesisError> where
Fn: FnOnce() -> Result<T, SynthesisError>,
CS: ConstraintSystem<F>,
T: Borrow<V>,
[src]
Fn: FnOnce() -> Result<T, SynthesisError>,
CS: ConstraintSystem<F>,
T: Borrow<V>,
fn alloc_checked<Fn, T, CS>(cs: CS, f: Fn) -> Result<Self, SynthesisError> where
Fn: FnOnce() -> Result<T, SynthesisError>,
CS: ConstraintSystem<F>,
T: Borrow<V>,
[src]
Fn: FnOnce() -> Result<T, SynthesisError>,
CS: ConstraintSystem<F>,
T: Borrow<V>,
fn alloc_input_checked<Fn, T, CS>(cs: CS, f: Fn) -> Result<Self, SynthesisError> where
Fn: FnOnce() -> Result<T, SynthesisError>,
CS: ConstraintSystem<F>,
T: Borrow<V>,
[src]
Fn: FnOnce() -> Result<T, SynthesisError>,
CS: ConstraintSystem<F>,
T: Borrow<V>,
impl<F> CondSelectGadget<F> for Boolean where
F: PrimeField,
[src]
impl<F> CondSelectGadget<F> for Boolean where
F: PrimeField,
[src]pub fn conditionally_select<CS>(
cs: CS,
cond: &Boolean,
first: &Boolean,
second: &Boolean
) -> Result<Boolean, SynthesisError> where
CS: ConstraintSystem<F>,
[src]
cs: CS,
cond: &Boolean,
first: &Boolean,
second: &Boolean
) -> Result<Boolean, SynthesisError> where
CS: ConstraintSystem<F>,
pub fn cost() -> usize
[src]
impl<F> ConditionalEqGadget<F> for Boolean where
F: Field,
[src]
impl<F> ConditionalEqGadget<F> for Boolean where
F: Field,
[src]pub fn conditional_enforce_equal<CS>(
&self,
cs: CS,
other: &Boolean,
condition: &Boolean
) -> Result<(), SynthesisError> where
CS: ConstraintSystem<F>,
[src]
&self,
cs: CS,
other: &Boolean,
condition: &Boolean
) -> Result<(), SynthesisError> where
CS: ConstraintSystem<F>,
pub fn cost() -> usize
[src]
impl<F> EqGadget<F> for Boolean where
F: Field,
[src]
impl<F> EqGadget<F> for Boolean where
F: Field,
[src]fn is_eq<CS>(&self, _cs: CS, _other: &Self) -> Result<Boolean, SynthesisError> where
CS: ConstraintSystem<F>,
[src]
fn is_eq<CS>(&self, _cs: CS, _other: &Self) -> Result<Boolean, SynthesisError> where
CS: ConstraintSystem<F>,
[src]Output a Boolean
value representing whether self.value() == other.value()
. Read more
fn enforce_equal<CS>(&self, cs: CS, other: &Self) -> Result<(), SynthesisError> where
CS: ConstraintSystem<F>,
[src]
CS: ConstraintSystem<F>,
fn cost() -> usize
[src]
impl<F> EvaluateEqGadget<F> for Boolean where
F: PrimeField,
[src]
impl<F> EvaluateEqGadget<F> for Boolean where
F: PrimeField,
[src]a == b = !(a XOR b)
pub fn evaluate_equal<CS>(
&self,
cs: CS,
other: &Boolean
) -> Result<Boolean, SynthesisError> where
CS: ConstraintSystem<F>,
[src]
&self,
cs: CS,
other: &Boolean
) -> Result<Boolean, SynthesisError> where
CS: ConstraintSystem<F>,
impl From<AllocatedBit> for Boolean
[src]
impl From<AllocatedBit> for Boolean
[src]pub fn from(b: AllocatedBit) -> Boolean
[src]
pub fn from(b: AllocatedBit) -> Boolean
[src]Performs the conversion.
impl SignExtend for Boolean
[src]
impl SignExtend for Boolean
[src]impl<F> ToBitsBEGadget<F> for Boolean where
F: Field,
[src]
impl<F> ToBitsBEGadget<F> for Boolean where
F: Field,
[src]pub fn to_bits_be<CS>(&self, CS) -> Result<Vec<Boolean, Global>, SynthesisError> where
CS: ConstraintSystem<F>,
[src]
CS: ConstraintSystem<F>,
pub fn to_bits_be_strict<CS>(
&self,
CS
) -> Result<Vec<Boolean, Global>, SynthesisError> where
CS: ConstraintSystem<F>,
[src]
pub fn to_bits_be_strict<CS>(
&self,
CS
) -> Result<Vec<Boolean, Global>, SynthesisError> where
CS: ConstraintSystem<F>,
[src]Additionally checks if the produced list of booleans is ‘valid’.
impl<F> ToBitsLEGadget<F> for Boolean where
F: Field,
[src]
impl<F> ToBitsLEGadget<F> for Boolean where
F: Field,
[src]pub fn to_bits_le<CS>(&self, CS) -> Result<Vec<Boolean, Global>, SynthesisError> where
CS: ConstraintSystem<F>,
[src]
CS: ConstraintSystem<F>,
pub fn to_bits_le_strict<CS>(
&self,
CS
) -> Result<Vec<Boolean, Global>, SynthesisError> where
CS: ConstraintSystem<F>,
[src]
pub fn to_bits_le_strict<CS>(
&self,
CS
) -> Result<Vec<Boolean, Global>, SynthesisError> where
CS: ConstraintSystem<F>,
[src]Additionally checks if the produced list of booleans is ‘valid’.
impl<F> ToBytesGadget<F> for Boolean where
F: Field,
[src]
impl<F> ToBytesGadget<F> for Boolean where
F: Field,
[src]pub fn to_bytes_strict<CS>(
&self,
cs: CS
) -> Result<Vec<UInt8, Global>, SynthesisError> where
CS: ConstraintSystem<F>,
[src]
pub fn to_bytes_strict<CS>(
&self,
cs: CS
) -> Result<Vec<UInt8, Global>, SynthesisError> where
CS: ConstraintSystem<F>,
[src]Additionally checks if the produced list of booleans is ‘valid’.
pub fn to_bytes<CS>(
&self,
_cs: CS
) -> Result<Vec<UInt8, Global>, SynthesisError> where
CS: ConstraintSystem<F>,
[src]
&self,
_cs: CS
) -> Result<Vec<UInt8, Global>, SynthesisError> where
CS: ConstraintSystem<F>,
impl<F> ToConstraintFieldGadget<F> for Boolean where
F: PrimeField,
[src]
impl<F> ToConstraintFieldGadget<F> for Boolean where
F: PrimeField,
[src]pub fn to_constraint_field<CS>(
&self,
cs: CS
) -> Result<Vec<FpGadget<F>, Global>, SynthesisError> where
CS: ConstraintSystem<F>,
[src]
pub fn to_constraint_field<CS>(
&self,
cs: CS
) -> Result<Vec<FpGadget<F>, Global>, SynthesisError> where
CS: ConstraintSystem<F>,
[src]Converts self
to FpGadget<F>
variables.
impl<F> Xor<F, Boolean> for Boolean where
F: Field,
[src]
impl<F> Xor<F, Boolean> for Boolean where
F: Field,
[src]pub fn xor<CS>(
&self,
cs: CS,
other: &Boolean
) -> Result<Boolean, SynthesisError> where
CS: ConstraintSystem<F>,
[src]
&self,
cs: CS,
other: &Boolean
) -> Result<Boolean, SynthesisError> where
CS: ConstraintSystem<F>,
impl Copy for Boolean
[src]
impl Eq for Boolean
[src]
Auto Trait Implementations
impl RefUnwindSafe for Boolean
impl Send for Boolean
impl Sync for Boolean
impl Unpin for Boolean
impl UnwindSafe for Boolean
Blanket Implementations
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]pub fn borrow_mut(&mut self) -> &mut T
[src]
pub fn borrow_mut(&mut self) -> &mut T
[src]Mutably borrows from an owned value. Read more
impl<F, T> ConditionalOrEqualsGadget<F> for T where
T: ConditionalEqGadget<F> + CondSelectGadget<F>,
F: Field,
[src]
impl<F, T> ConditionalOrEqualsGadget<F> for T where
T: ConditionalEqGadget<F> + CondSelectGadget<F>,
F: Field,
[src]pub fn conditional_enforce_equal_or<CS>(
cs: CS,
cond: &Boolean,
var: &T,
first: &T,
second: &T,
should_enforce: &Boolean
) -> Result<(), SynthesisError> where
CS: ConstraintSystem<F>,
[src]
cs: CS,
cond: &Boolean,
var: &T,
first: &T,
second: &T,
should_enforce: &Boolean
) -> Result<(), SynthesisError> where
CS: ConstraintSystem<F>,
pub fn cost() -> usize
[src]
impl<Q, K> Equivalent<K> for Q where
K: Borrow<Q> + ?Sized,
Q: Eq + ?Sized,
[src]
impl<Q, K> Equivalent<K> for Q where
K: Borrow<Q> + ?Sized,
Q: Eq + ?Sized,
[src]pub fn equivalent(&self, key: &K) -> bool
[src]
pub fn equivalent(&self, key: &K) -> bool
[src]Compare self to key
and return true
if they are equal.
impl<F, T> OrEqualsGadget<F> for T where
T: ConditionalOrEqualsGadget<F>,
F: Field,
[src]
impl<F, T> OrEqualsGadget<F> for T where
T: ConditionalOrEqualsGadget<F>,
F: Field,
[src]pub fn enforce_equal_or<CS>(
cs: CS,
cond: &Boolean,
var: &T,
first: &T,
second: &T
) -> Result<(), SynthesisError> where
CS: ConstraintSystem<F>,
[src]
cs: CS,
cond: &Boolean,
var: &T,
first: &T,
second: &T
) -> Result<(), SynthesisError> where
CS: ConstraintSystem<F>,
pub fn cost() -> usize
[src]
impl<T> Pointable for T
impl<T> Pointable for T
impl<T> Same<T> for T
impl<T> Same<T> for T
type Output = T
type Output = T
Should always be Self
impl<T> ToOwned for T where
T: Clone,
[src]
impl<T> ToOwned for T where
T: Clone,
[src]type Owned = T
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn to_owned(&self) -> T
[src]Creates owned data from borrowed data, usually by cloning. Read more
pub fn clone_into(&self, target: &mut T)
[src]
pub fn clone_into(&self, target: &mut T)
[src]🔬 This is a nightly-only experimental API. (toowned_clone_into
)
recently added
Uses borrowed data to replace owned data, usually by cloning. Read more
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,