#![doc = include_str!("../README.md")] #![doc( html_logo_url = "https://commonware.xyz/imgs/rustdoc_logo.svg", html_favicon_url = "https://commonware.xyz/favicon.ico" )] #![cfg_attr(not(any(feature = "std", test)), no_std)] #[cfg(not(feature = "std"))] extern crate alloc; commonware_macros::stability_scope!(ALPHA { pub mod fields { pub mod goldilocks; } pub mod ntt; }); commonware_macros::stability_scope!(BETA { pub mod algebra; pub mod poly; }); commonware_macros::stability_scope!(ALPHA { #[cfg(any(test, feature = "fuzz"))] pub(crate) mod test; }); commonware_macros::stability_scope!(ALPHA { #[cfg(feature = "fuzz")] pub mod fuzz { use arbitrary::{Arbitrary, Unstructured}; #[derive(Debug, Arbitrary)] pub enum Plan { Poly(crate::poly::fuzz::Plan), Algebra(crate::algebra::fuzz::Plan), Goldilocks(crate::fields::goldilocks::fuzz::Plan), Test(crate::test::fuzz::Plan), Ntt(crate::ntt::fuzz::Plan), } impl Plan { pub fn run(self, u: &mut Unstructured<'_>) -> arbitrary::Result<()> { match self { Self::Poly(plan) => plan.run(u), Self::Algebra(plan) => plan.run(u), Self::Goldilocks(plan) => plan.run(u), Self::Test(plan) => plan.run(u), Self::Ntt(plan) => plan.run(u), } } } } });