gear_core_processor/
lib.rs

1// This file is part of Gear.
2
3// Copyright (C) 2021-2023 Gear Technologies Inc.
4// SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0
5
6// This program is free software: you can redistribute it and/or modify
7// it under the terms of the GNU General Public License as published by
8// the Free Software Foundation, either version 3 of the License, or
9// (at your option) any later version.
10
11// This program is distributed in the hope that it will be useful,
12// but WITHOUT ANY WARRANTY; without even the implied warranty of
13// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14// GNU General Public License for more details.
15
16// You should have received a copy of the GNU General Public License
17// along with this program. If not, see <https://www.gnu.org/licenses/>.
18
19//! Gear message processor.
20
21#![no_std]
22#![warn(missing_docs)]
23#![cfg_attr(feature = "strict", deny(warnings))]
24#![doc(html_logo_url = "https://docs.gear.rs/logo.svg")]
25
26extern crate alloc;
27
28pub mod common;
29pub mod configs;
30mod context;
31mod executor;
32mod ext;
33mod handler;
34mod precharge;
35mod processing;
36
37pub use context::{
38    ContextChargedForCode, ContextChargedForInstrumentation, ProcessExecutionContext,
39};
40pub use executor::{execute_wasm, ActorPrepareMemoryError};
41pub use ext::{
42    AllocExtError, Ext, FallibleExtError, ProcessorContext, ProcessorExternalities,
43    UnrecoverableExtError,
44};
45pub use handler::handle_journal;
46pub use precharge::{
47    calculate_gas_for_code, calculate_gas_for_program, precharge_for_code,
48    precharge_for_code_length, precharge_for_instrumentation, precharge_for_memory,
49    precharge_for_program,
50};
51pub use processing::process;
52
53/// Informational functions for core-processor and executor.
54pub mod informational {
55    pub use crate::executor::execute_for_reply;
56}