#![cfg_attr(not(feature = "std"), no_std)]
#![forbid(unsafe_code)]
#![warn(
// Enable sets of warnings
clippy::all,
clippy::pedantic,
clippy::cargo,
rust_2018_idioms,
future_incompatible,
unused,
// Additional unused warnings (not included in `unused`)
unused_lifetimes,
unused_qualifications,
unused_results,
// Additional misc. warnings
anonymous_parameters,
deprecated_in_future,
elided_lifetimes_in_paths,
explicit_outlives_requirements,
keyword_idents,
macro_use_extern_crate,
// missing_docs,
missing_doc_code_examples,
private_doc_tests,
single_use_lifetimes,
trivial_casts,
trivial_numeric_casts,
unreachable_pub,
unsafe_code,
variant_size_differences
)]
#![cfg_attr(feature = "std", warn(missing_debug_implementations,))]
#![allow(clippy::multiple_crate_versions)]
#![allow(clippy::must_use_candidate)]
#![allow(clippy::inline_always)]
mod convert;
pub mod fft;
pub mod geometric_series;
mod invert_batch;
mod ops;
#[cfg(feature = "parity_codec")]
mod parity_codec;
mod prime_field;
#[cfg(any(test, feature = "proptest"))]
mod proptest;
mod proth_field;
#[cfg(feature = "rand")]
mod rand;
#[cfg(feature = "serde")]
mod serde;
mod traits;
mod uint;
pub use prime_field::{Parameters, PrimeField};
pub use zkp_u256::MontgomeryParameters;
pub use proth_field::FieldElement;
pub use invert_batch::{invert_batch, invert_batch_src_dst};
pub use zkp_u256 as u256;
pub use traits::{Fft, FieldLike, RefFieldLike, Root, SquareRoot};
pub use zkp_u256::{AddInline, Inv, MulInline, NegInline, One, Pow, SquareInline, SubInline, Zero};
pub use uint::UInt;
#[cfg(not(feature = "std"))]
extern crate no_std_compat as std;