1#![forbid(unsafe_code)]
9#![deny(missing_docs)]
10#![cfg_attr(mirai, allow(incomplete_features), feature(const_generics))]
13
14pub mod bls;
18pub mod compat;
19pub mod ec_vrf;
21pub mod ed25519;
22pub mod error;
23pub mod hash;
24pub mod hkdf;
25pub mod multi_bls;
27pub mod multi_ed25519;
28pub mod noise;
29pub mod test_utils;
30pub mod traits;
31pub mod vdf_sha3;
33pub mod x25519;
34
35#[cfg(test)]
36mod unit_tests;
37
38pub mod key_file;
40#[cfg(mirai)]
41mod tags;
42
43pub use self::traits::*;
44pub use hash::HashValue;
45
46#[doc(hidden)]
49pub use once_cell as _once_cell;
50#[doc(hidden)]
51pub use serde_name as _serde_name;
52
53#[cfg(not(any(feature = "fiat", feature = "u64", feature = "u32")))]
58compile_error!(
59 "no dalek arithmetic backend cargo feature enabled! \
60 please enable one of: fiat, u64, u32"
61);
62
63#[cfg(all(feature = "fiat", feature = "u64"))]
64compile_error!(
65 "at most one dalek arithmetic backend cargo feature should be enabled! \
66 please enable exactly one of: fiat, u64, u32"
67);
68
69#[cfg(all(feature = "fiat", feature = "u32"))]
70compile_error!(
71 "at most one dalek arithmetic backend cargo feature should be enabled! \
72 please enable exactly one of: fiat, u64, u32"
73);
74
75#[cfg(all(feature = "u64", feature = "u32"))]
76compile_error!(
77 "at most one dalek arithmetic backend cargo feature should be enabled! \
78 please enable exactly one of: fiat, u64, u32"
79);
80
81#[cfg(all(mirai, not(debug_assertions)))]
86compile_error!("MIRAI can only be used to compile the crate in a debug build!");