core_processor/
lib.rs

1// This file is part of Gear.
2
3// Copyright (C) 2021-2025 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#![doc(html_logo_url = "https://gear-tech.io/logo.png")]
24#![doc(html_favicon_url = "https://gear-tech.io/favicon.ico")]
25#![cfg_attr(docsrs, feature(doc_cfg))]
26
27extern crate alloc;
28
29pub mod common;
30pub mod configs;
31mod context;
32mod executor;
33mod ext;
34mod handler;
35pub mod precharge;
36mod processing;
37
38pub use context::{ProcessExecutionContext, SystemReservationContext};
39pub use ext::{
40    AllocExtError, Ext, FallibleExtError, ProcessorContext, ProcessorExternalities,
41    UnrecoverableExtError,
42};
43pub use handler::handle_journal;
44pub use precharge::*;
45pub use processing::{
46    process, process_allowance_exceed, process_code_not_exists, process_execution_error,
47    process_failed_init, process_instrumentation_failed, process_program_exited,
48    process_reinstrumentation_error, process_success, process_uninitialized,
49};
50
51/// Informational functions for core-processor and executor.
52pub mod informational {
53    pub use crate::executor::execute_for_reply;
54}