arnaucube
arnaucube/ark-r1cs-stdPublic Self-hosted repository
ark-r1cs-std/r1cs-std/src/lib.rs
r1cs-std/src/lib.rsRaw
 1#![deny(
 2    unused_import_braces,
 3    unused_qualifications,
 4    trivial_casts,
 5    trivial_numeric_casts
 6)]
 7#![deny(
 8    unused_qualifications,
 9    variant_size_differences,
10    stable_features,
11    unreachable_pub
12)]
13#![deny(
14    non_shorthand_field_patterns,
15    unused_attributes,
16    unused_imports,
17    unused_extern_crates
18)]
19#![deny(
20    renamed_and_removed_lints,
21    stable_features,
22    unused_allocation,
23    unused_comparisons,
24    bare_trait_objects
25)]
26#![deny(
27    const_err,
28    unused_must_use,
29    unused_mut,
30    unused_unsafe,
31    private_in_public,
32    unsafe_code
33)]
34#![forbid(unsafe_code)]
35
36#[macro_use]
37extern crate algebra;
38#[macro_use]
39extern crate derivative;
40
41pub mod test_constraint_system;
42
43pub mod bits;
44pub use self::bits::*;
45
46pub mod fields;
47
48pub mod groups;
49
50pub mod pairing;
51
52pub mod eq;
53pub mod select;
54pub mod alloc;
55
56pub mod prelude {
57    pub use crate::eq::*;
58    pub use crate::select::*;
59    pub use crate::alloc::*;
60    pub use crate::fields::FieldGadget;
61    pub use crate::groups::GroupGadget;
62    pub use crate::pairing::PairingGadget;
63    pub use crate::bits::{ToBitsGadget, ToBytesGadget, boolean::Boolean, uint8::UInt8, uint32::UInt32};
64}
65
66pub trait Assignment<T> {
67    fn get(self) -> Result<T, r1cs_core::SynthesisError>;
68}
69
70impl<T> Assignment<T> for Option<T> {
71    fn get(self) -> Result<T, r1cs_core::SynthesisError> {
72        match self {
73            Some(v) => Ok(v),
74            None => Err(r1cs_core::SynthesisError::AssignmentMissing),
75        }
76    }
77}