Browse Source

add to_bits_be

master
oblivious-app 4 years ago
committed by Pratyush Mishra
parent
commit
d087166c51
1 changed files with 15 additions and 1 deletions
  1. +15
    -1
      r1cs-std/src/bits/mod.rs

+ 15
- 1
r1cs-std/src/bits/mod.rs

@ -25,13 +25,27 @@ pub trait ToBitsGadget {
/// This is the correct default for 99% of use cases. /// This is the correct default for 99% of use cases.
fn to_bits_le(&self) -> Result<Vec<Boolean<F>>, SynthesisError>; fn to_bits_le(&self) -> Result<Vec<Boolean<F>>, SynthesisError>;
/// Outputs a possibly non-unique bit-wise representation of `self`.
/// Outputs a possibly non-unique little-endian bit-wise representation of `self`.
/// ///
/// If you're not absolutely certain that your usecase can get away with a /// If you're not absolutely certain that your usecase can get away with a
/// non-canonical representation, please use `self.to_bits()` instead. /// non-canonical representation, please use `self.to_bits()` instead.
fn to_non_unique_bits_le(&self) -> Result<Vec<Boolean<F>>, SynthesisError> { fn to_non_unique_bits_le(&self) -> Result<Vec<Boolean<F>>, SynthesisError> {
self.to_bits_le() self.to_bits_le()
} }
/// Outputs the canonical big-endian bit-wise representation of `self`.
fn to_bits_be(&self) -> Result<Vec<Boolean<F>>, SynthesisError> {
let mut res = self.to_bits_le()?;
res.reverse();
Ok(res)
}
/// Outputs a possibly non-unique big-endian bit-wise representation of `self`.
fn to_non_unique_bits_be(&self) -> Result<Vec<Boolean<F>>, SynthesisError> {
let mut res = self.to_non_unique_bits_le()?;
res.reverse();
Ok(res)
}
} }
impl<F: Field> ToBitsGadget<F> for Boolean<F> { impl<F: Field> ToBitsGadget<F> for Boolean<F> {

Loading…
Cancel
Save