1#![cfg_attr(not(feature = "std"), no_std)]
17
18#[cfg(all(test, not(feature = "std")))]
19#[macro_use]
20extern crate std;
21
22#[cfg(not(feature = "std"))]
23pub use alloc::*;
24
25#[cfg(not(feature = "std"))]
26pub use core::*;
27
28#[cfg(feature = "std")]
29#[doc(hidden)]
30pub use std::*;
31
32#[cfg(not(feature = "std"))]
33#[allow(unused_imports)]
34#[doc(hidden)]
35pub use alloc::{boxed::Box, vec::Vec};
36
37#[cfg(feature = "std")]
38#[allow(unused_imports)]
39#[doc(hidden)]
40pub use std::{boxed::Box, vec::Vec};
41
42#[macro_use]
43extern crate thiserror;
44
45pub mod biginteger;
46pub use biginteger::*;
47
48pub mod bititerator;
49pub use bititerator::*;
50
51#[macro_use]
52pub mod bits;
53pub use bits::*;
54
55#[macro_use]
56pub mod bytes;
57pub use bytes::*;
58
59#[macro_use]
60pub mod defer;
61pub use defer::*;
62
63pub mod error;
64pub use error::*;
65
66pub mod iterator;
67pub use iterator::*;
68
69#[macro_use]
70pub mod parallel;
71pub use parallel::*;
72
73#[macro_use]
74mod print;
75
76pub mod rand;
77pub use self::rand::*;
78
79pub mod serialize;
80pub use serialize::*;
81
82#[cfg(not(feature = "std"))]
83pub mod io;
84
85#[cfg(not(feature = "std"))]
86pub fn error(_msg: &'static str) -> io::Error {
87 io::Error
88}
89
90#[cfg(feature = "std")]
91pub fn error<S: ToString>(msg: S) -> io::Error {
92 io::Error::new(io::ErrorKind::Other, msg.to_string())
93}