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
#![cfg_attr(not(feature = "std"), no_std)]
#[cfg(all(test, not(feature = "std")))]
#[macro_use]
extern crate std;
#[cfg(not(feature = "std"))]
#[allow(unused_imports)]
#[doc(hidden)]
pub use alloc::{boxed::Box, format, vec, vec::Vec};
#[cfg(feature = "std")]
#[allow(unused_imports)]
#[doc(hidden)]
pub use std::{boxed::Box, format, vec, vec::Vec};
pub mod biginteger;
pub use biginteger::*;
pub mod bititerator;
pub use bititerator::*;
#[macro_use]
pub mod bytes;
pub use bytes::*;
pub mod error;
pub use error::*;
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));