#![forbid(unsafe_code)]
#![warn(clippy::cast_possible_truncation)]
#![allow(clippy::type_complexity)]
#[macro_use]
extern crate tracing;
#[cfg(feature = "process")]
pub use synthesizer_process as process;
#[cfg(feature = "program")]
pub use synthesizer_program as program;
#[cfg(feature = "snark")]
pub use synthesizer_snark as snark;
#[cfg(feature = "process")]
pub use crate::process::{Authorization, CallMetrics, Process, Stack, Trace};
#[cfg(feature = "program")]
pub use crate::program::{Closure, Command, Finalize, Function, Instruction, Program};
#[cfg(all(feature = "process", feature = "program", feature = "snark"))]
pub mod vm;
#[cfg(all(feature = "process", feature = "program", feature = "snark"))]
pub use vm::*;
pub mod prelude {
#[cfg(feature = "process")]
pub use crate::process::*;
#[cfg(feature = "program")]
pub use crate::program::{Closure, Finalize, Function, Instruction, Mapping, Program};
#[cfg(feature = "snark")]
pub use crate::snark::{Certificate, Proof, ProvingKey, UniversalSRS, VerifyingKey};
#[cfg(all(feature = "process", feature = "program", feature = "snark"))]
pub use crate::vm::*;
}