1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
#![cfg_attr(not(feature = "std"), no_std)]
#[cfg(all(test, not(feature = "std")))]
#[macro_use]
extern crate std;
#[rustfmt::skip]
#[cfg(not(feature = "std"))]
#[allow(unused_imports)]
#[doc(hidden)]
pub use alloc::{boxed::Box, format, vec, vec::Vec};
#[rustfmt::skip]
#[cfg(feature = "std")]
#[allow(unused_imports)]
#[doc(hidden)]
pub use std::{boxed::Box, format, vec, vec::Vec};
#[macro_use]
extern crate thiserror;
pub mod biginteger;
pub use biginteger::*;
pub mod bititerator;
pub use bititerator::*;
#[macro_use]
pub mod bits;
pub use bits::*;
#[macro_use]
pub mod bytes;
pub use bytes::*;
pub mod error;
pub use error::*;
pub mod errors;
pub use errors::*;
pub mod iterator;
pub use iterator::*;
pub mod math;
pub use math::*;
pub mod rand;
pub use self::rand::*;
pub mod serialize;
pub use serialize::*;
pub mod variable_length_integer;
pub use variable_length_integer::*;
#[cfg(not(feature = "std"))]
pub mod io;
#[cfg(feature = "std")]
pub use std::io;
#[cfg(not(feature = "std"))]
pub fn error(_msg: &'static str) -> io::Error {
io::Error
}
#[cfg(feature = "std")]
pub fn error(msg: &'static str) -> io::Error {
io::Error::new(io::ErrorKind::Other, msg)
}
#[macro_export]
macro_rules! unwrap_option_or_continue {
( $e:expr ) => {
match $e {
Some(x) => x,
None => continue,
}
};
}
#[macro_export]
macro_rules! unwrap_result_or_continue {
( $e:expr ) => {
match $e {
Ok(x) => x,
Err(_) => continue,
}
};
}
#[macro_export]
macro_rules! unwrap_option_or_error {
($e:expr; $err:expr) => {
match $e {
Some(val) => val,
None => return Err($err),
}
};
}
use std::sync::atomic::{AtomicBool, AtomicU64};
#[doc(hide)]
thread_local!(pub static PROCESSING_SNARK_PARAMS: AtomicBool = AtomicBool::new(false));
#[doc(hide)]
thread_local!(pub static SNARK_PARAMS_AFFINE_COUNT: AtomicU64 = AtomicU64::new(0));