radix_engine/
lib.rs

1#![allow(
2    // Allowed since many of the result types we use are quite large and fixing them one by one is 
3    // not something we can easily do.
4    // TODO: Remove this in the future.
5    clippy::result_large_err
6)]
7#![cfg_attr(not(feature = "std"), no_std)]
8
9extern crate core;
10#[cfg(not(any(feature = "std", feature = "alloc")))]
11compile_error!("Either feature `std` or `alloc` must be enabled for this crate.");
12#[cfg(all(feature = "std", feature = "alloc"))]
13compile_error!("Feature `std` and `alloc` can't be enabled at the same time.");
14
15#[cfg(not(any(feature = "moka", feature = "lru")))]
16compile_error!("Either feature `moka` or `lru` must be enabled for this crate.");
17#[cfg(all(feature = "moka", feature = "lru"))]
18compile_error!("Feature `moka` and `lru` can't be enabled at the same time.");
19
20/// Radix Engine kernel, defining state, ownership and (low-level) invocation semantics.
21pub mod kernel;
22/// Radix Engine system, defining packages (a.k.a. classes), components (a.k.a. objects) and invocation semantics.
23pub mod system;
24/// Radix Engine transaction interface.
25pub mod transaction;
26
27/// Native blueprints (to be moved to individual crates)
28pub mod blueprints;
29
30/// Object module blueprints (to be moved to individual crates)
31pub mod object_modules;
32
33pub mod track;
34
35pub mod errors;
36
37pub mod utils;
38
39pub mod vm;
40
41/// Protocol updates
42pub mod updates;
43
44pub mod init;
45
46pub(crate) mod internal_prelude {
47    pub use crate::blueprints::internal_prelude::*;
48    pub use crate::errors::*;
49    pub use crate::init::*;
50    pub use crate::kernel::kernel_api::*;
51    pub use crate::system::system_substates::*;
52    pub(crate) use crate::track::NodeSubstatesExt;
53    pub use crate::vm::*;
54    pub use crate::{
55        dispatch, event_schema, function_schema, method_auth_template, roles_template,
56    };
57    pub use radix_blueprint_schema_init::*;
58    pub use radix_common::prelude::*;
59    pub use radix_engine_interface::api::*;
60    pub use radix_engine_interface::blueprints::component::*;
61    pub use radix_engine_interface::prelude::*;
62    pub use radix_native_sdk::resource::*;
63    pub use radix_native_sdk::runtime::*;
64    pub use radix_substate_store_interface::interface::*;
65    pub use sbor::rust::ops::AddAssign;
66    pub use sbor::rust::ops::SubAssign;
67}