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
39#[macro_use]
40extern crate derivative;
41
42pub mod test_constraint_system;
43
44pub mod bits;
45pub use self::bits::*;
46
47pub mod fields;
48
49pub mod groups;
50
51pub mod pairing;
52
53pub mod alloc;
54pub mod eq;
55pub mod select;
56
57pub mod prelude {
58 pub use crate::{
59 alloc::*,
60 bits::{boolean::Boolean, uint32::UInt32, uint8::UInt8, ToBitsGadget, ToBytesGadget},
61 eq::*,
62 fields::FieldGadget,
63 groups::GroupGadget,
64 pairing::PairingGadget,
65 select::*,
66 };
67}
68
69pub trait Assignment<T> {
70 fn get(self) -> Result<T, r1cs_core::SynthesisError>;
71}
72
73impl<T> Assignment<T> for Option<T> {
74 fn get(self) -> Result<T, r1cs_core::SynthesisError> {
75 self.ok_or_else(|| r1cs_core::SynthesisError::AssignmentMissing)
76 }
77}