rtvm_interpreter/
lib.rs

1//! # rtvm-interpreter
2//!
3//! RTVM Interpreter.
4#![warn(rustdoc::all)]
5#![warn(unreachable_pub, unused_crate_dependencies)]
6#![deny(unused_must_use, rust_2018_idioms)]
7#![cfg_attr(not(feature = "std"), no_std)]
8
9#[cfg(not(feature = "std"))]
10extern crate alloc as std;
11
12#[macro_use]
13mod macros;
14
15// silence lint
16#[cfg(test)]
17use serde_json as _;
18
19#[cfg(test)]
20use walkdir as _;
21
22mod function_stack;
23pub mod gas;
24mod host;
25mod instruction_result;
26pub mod instructions;
27pub mod interpreter;
28pub mod interpreter_action;
29pub mod opcode;
30
31// Reexport primary types.
32pub use function_stack::{FunctionReturnFrame, FunctionStack};
33pub use gas::Gas;
34pub use host::{DummyHost, Host, LoadAccountResult, SStoreResult, SelfDestructResult};
35pub use instruction_result::*;
36pub use interpreter::{
37    analysis, next_multiple_of_32, Contract, Interpreter, InterpreterResult, SharedMemory, Stack,
38    EMPTY_SHARED_MEMORY, STACK_LIMIT,
39};
40pub use interpreter_action::{
41    CallInputs, CallOutcome, CallScheme, CallValue, CreateInputs, CreateOutcome, CreateScheme,
42    EOFCreateInput, EOFCreateOutcome, InterpreterAction,
43};
44pub use opcode::{Instruction, OpCode, OPCODE_INFO_JUMPTABLE};
45pub use primitives::{MAX_CODE_SIZE, MAX_INITCODE_SIZE};
46
47#[doc(hidden)]
48pub use rtvm_primitives as primitives;