1#![warn(clippy::shadow_unrelated)]
2#![cfg_attr(coverage_nightly, feature(coverage_attribute))]
15
16pub mod config;
17pub mod error;
18pub mod math;
19pub mod prelude;
20pub mod tip5;
21pub mod util_types;
22
23extern crate self as twenty_first;
32
33pub use bfieldcodec_derive;
35
36#[cfg(test)]
37#[cfg_attr(coverage_nightly, coverage(off))]
38pub(crate) mod tests {
39 use prelude::*;
40
41 use super::*;
42
43 pub fn implements_usual_auto_traits<T: Sized + Send + Sync + Unpin>() {}
57
58 #[test]
59 fn types_in_prelude_implement_the_usual_auto_traits() {
60 implements_usual_auto_traits::<BFieldElement>();
61 implements_usual_auto_traits::<Polynomial<BFieldElement>>();
62 implements_usual_auto_traits::<Polynomial<XFieldElement>>();
63 implements_usual_auto_traits::<Digest>();
64 implements_usual_auto_traits::<Tip5>();
65 implements_usual_auto_traits::<XFieldElement>();
66 implements_usual_auto_traits::<MerkleTree>();
67 implements_usual_auto_traits::<MerkleTreeInclusionProof>();
68 implements_usual_auto_traits::<MmrMembershipProof>();
69 }
70
71 #[test]
72 fn public_types_implement_the_usual_auto_traits() {
73 implements_usual_auto_traits::<math::lattice::CyclotomicRingElement>();
74 implements_usual_auto_traits::<math::lattice::ModuleElement<42>>();
75 implements_usual_auto_traits::<math::lattice::kem::SecretKey>();
76 implements_usual_auto_traits::<math::lattice::kem::PublicKey>();
77 implements_usual_auto_traits::<math::lattice::kem::Ciphertext>();
78 implements_usual_auto_traits::<util_types::sponge::Domain>();
79 implements_usual_auto_traits::<util_types::mmr::mmr_accumulator::MmrAccumulator>();
80 implements_usual_auto_traits::<math::zerofier_tree::Branch<BFieldElement>>();
81 implements_usual_auto_traits::<math::zerofier_tree::Leaf<BFieldElement>>();
82 implements_usual_auto_traits::<math::zerofier_tree::ZerofierTree<BFieldElement>>();
83 implements_usual_auto_traits::<
84 math::polynomial::ModularInterpolationPreprocessingData<BFieldElement>,
85 >();
86 }
87
88 #[test]
89 fn errors_implement_the_usual_auto_traits() {
90 implements_usual_auto_traits::<error::BFieldCodecError>();
91 implements_usual_auto_traits::<error::PolynomialBFieldCodecError>();
92 implements_usual_auto_traits::<error::MerkleTreeError>();
93 implements_usual_auto_traits::<error::ParseBFieldElementError>();
94 implements_usual_auto_traits::<error::TryFromDigestError>();
95 implements_usual_auto_traits::<error::TryFromHexDigestError>();
96 implements_usual_auto_traits::<error::TryFromU32sError>();
97 implements_usual_auto_traits::<error::TryFromXFieldElementError>();
98 }
99}