#![warn(clippy::shadow_unrelated)]
#![cfg_attr(coverage_nightly, feature(coverage_attribute))]
pub mod config;
pub mod error;
pub mod math;
pub mod prelude;
pub mod tip5;
pub mod util_types;
extern crate self as twenty_first;
pub use bfieldcodec_derive;
#[cfg(test)]
#[cfg_attr(coverage_nightly, coverage(off))]
pub(crate) mod tests {
use prelude::*;
use super::*;
macro_rules! test {
($item:item) => {
#[test]
#[cfg_attr(target_arch = "wasm32", wasm_bindgen_test::wasm_bindgen_test)]
$item
};
}
pub(crate) use test;
macro_rules! proptest {
($item:item $(($($config:tt)*))?) => {
#[test_strategy::proptest $(($($config)*))?]
#[cfg_attr(target_arch = "wasm32", wasm_bindgen_test::wasm_bindgen_test)]
$item
};
}
pub(crate) use proptest;
pub fn implements_usual_auto_traits<T: Sized + Send + Sync + Unpin>() {}
#[macro_rules_attr::apply(test)]
fn types_in_prelude_implement_the_usual_auto_traits() {
implements_usual_auto_traits::<BFieldElement>();
implements_usual_auto_traits::<Polynomial<BFieldElement>>();
implements_usual_auto_traits::<Polynomial<XFieldElement>>();
implements_usual_auto_traits::<Digest>();
implements_usual_auto_traits::<Tip5>();
implements_usual_auto_traits::<XFieldElement>();
implements_usual_auto_traits::<MerkleTree>();
implements_usual_auto_traits::<MerkleTreeInclusionProof>();
implements_usual_auto_traits::<MmrMembershipProof>();
}
#[macro_rules_attr::apply(test)]
fn public_types_implement_the_usual_auto_traits() {
implements_usual_auto_traits::<math::lattice::CyclotomicRingElement>();
implements_usual_auto_traits::<math::lattice::ModuleElement<42>>();
implements_usual_auto_traits::<math::lattice::kem::SecretKey>();
implements_usual_auto_traits::<math::lattice::kem::PublicKey>();
implements_usual_auto_traits::<math::lattice::kem::Ciphertext>();
implements_usual_auto_traits::<util_types::sponge::Domain>();
implements_usual_auto_traits::<util_types::mmr::mmr_accumulator::MmrAccumulator>();
implements_usual_auto_traits::<math::zerofier_tree::Branch<BFieldElement>>();
implements_usual_auto_traits::<math::zerofier_tree::Leaf<BFieldElement>>();
implements_usual_auto_traits::<math::zerofier_tree::ZerofierTree<BFieldElement>>();
implements_usual_auto_traits::<
math::polynomial::ModularInterpolationPreprocessingData<BFieldElement>,
>();
}
#[macro_rules_attr::apply(test)]
fn errors_implement_the_usual_auto_traits() {
implements_usual_auto_traits::<error::BFieldCodecError>();
implements_usual_auto_traits::<error::PolynomialBFieldCodecError>();
implements_usual_auto_traits::<error::MerkleTreeError>();
implements_usual_auto_traits::<error::ParseBFieldElementError>();
implements_usual_auto_traits::<error::TryFromDigestError>();
implements_usual_auto_traits::<error::TryFromHexDigestError>();
implements_usual_auto_traits::<error::TryFromU32sError>();
implements_usual_auto_traits::<error::TryFromXFieldElementError>();
}
}