1#![cfg_attr(feature = "tco", allow(incomplete_features))]
2#![cfg_attr(feature = "tco", feature(explicit_tail_calls))]
3#![cfg_attr(feature = "tco", allow(internal_features))]
4#![cfg_attr(feature = "tco", feature(core_intrinsics))]
5
6#[cfg(all(feature = "tco", feature = "aot"))]
8compile_error!("Features \"tco\" and \"aot\" cannot be enabled at the same time");
9
10#[cfg(all(feature = "aot", not(target_arch = "x86_64")))]
12compile_error!("Feature \"aot\" is only supported on x86_64 targets");
13
14extern crate self as openvm_circuit;
15
16pub use openvm_circuit_derive as derive;
17pub use openvm_circuit_primitives as primitives;
18pub use openvm_circuit_primitives_derive as circuit_derive;
19#[cfg(all(feature = "test-utils", feature = "cuda"))]
20pub use openvm_cuda_backend;
21#[cfg(feature = "test-utils")]
22pub use openvm_stark_sdk;
23
24pub mod arch;
26#[cfg(feature = "metrics")]
28pub mod metrics;
29pub mod system;
33pub mod utils;
35
36#[cfg(feature = "cuda")]
37pub(crate) mod cuda_abi;