cairo_vm/lib.rs
1//! # An implementation of the Cairo virtual machine
2//!
3//! ## Feature Flags
4//! - `test_utils`: Enables the following to help with tests (not enabled by default):
5//! - [`Hooks`](crate::vm::hooks::Hooks) support for the [VirtualMachine](vm::vm_core::VirtualMachine);
6//! - the `print_*` family of hints;
7//! - the `skip_next_instruction()` hints;
8//! - implementations of [`arbitrary::Arbitrary`](https://docs.rs/arbitrary/latest/arbitrary/) for some structs.
9//! - `cairo-1-hints`: Enable hints that were introduced in Cairo 1. Not enabled by default.
10//! - `cairo-0-secp-hints`: Enable secp hints that were introduced in Cairo 0. Not enabled by default.
11//! - `cairo-0-data-availability-hints`: Enable data availability hints that were introduced in Cairo 0. Not enabled by default.
12
13#![cfg_attr(docsrs, feature(doc_cfg))]
14#![deny(warnings)]
15#![forbid(unsafe_code)]
16
17pub mod air_private_input;
18pub mod air_public_input;
19pub mod cairo_run;
20pub mod hint_processor;
21pub mod math_utils;
22pub mod program_hash;
23pub mod serde;
24pub mod typed_operations;
25pub mod types;
26pub mod utils;
27pub mod vm;
28
29// TODO: use `Felt` directly
30pub use starknet_types_core::felt::Felt as Felt252;
31
32#[cfg(test)]
33mod tests;