aboutsummaryrefslogtreecommitdiff
path: root/mingling_core/src/asset/chain
diff options
context:
space:
mode:
author魏曹先生 <1992414357@qq.com>2026-04-22 13:27:43 +0800
committer魏曹先生 <1992414357@qq.com>2026-04-22 13:30:13 +0800
commit3785202ec5b949cba5501b20729b16f4c29ea626 (patch)
tree2a276df54128e73557463af54d626a1a7c250e94 /mingling_core/src/asset/chain
parentc2f9fb47832c5e12fe37762616c81b016de00464 (diff)
Add new_with_args and dispatch_args_dynamic to Program
Remove Display bound from Group type parameter and delete dispatcher_render macro. This is a breaking change.
Diffstat (limited to 'mingling_core/src/asset/chain')
-rw-r--r--mingling_core/src/asset/chain/error.rs33
1 files changed, 33 insertions, 0 deletions
diff --git a/mingling_core/src/asset/chain/error.rs b/mingling_core/src/asset/chain/error.rs
index cc22bdc..5221e57 100644
--- a/mingling_core/src/asset/chain/error.rs
+++ b/mingling_core/src/asset/chain/error.rs
@@ -1,3 +1,5 @@
+use crate::error::{ProgramExecuteError, ProgramInternalExecuteError};
+
#[derive(thiserror::Error, Debug)]
pub enum ChainProcessError {
#[error("Other error: {0}")]
@@ -6,3 +8,34 @@ pub enum ChainProcessError {
#[error("IO error: {0}")]
IO(#[from] std::io::Error),
}
+
+impl From<ProgramExecuteError> for ChainProcessError {
+ fn from(value: ProgramExecuteError) -> Self {
+ match value {
+ ProgramExecuteError::DispatcherNotFound => {
+ ChainProcessError::Other("DispatcherNotFound".into())
+ }
+ ProgramExecuteError::RendererNotFound(r) => {
+ ChainProcessError::Other(format!("RendererNotFound: {}", r))
+ }
+ ProgramExecuteError::Other(e) => ChainProcessError::Other(e),
+ }
+ }
+}
+
+impl From<ProgramInternalExecuteError> for ChainProcessError {
+ fn from(value: ProgramInternalExecuteError) -> Self {
+ match value {
+ ProgramInternalExecuteError::DispatcherNotFound => {
+ ChainProcessError::Other("DispatcherNotFound".into())
+ }
+ ProgramInternalExecuteError::RendererNotFound(r) => {
+ ChainProcessError::Other(format!("RendererNotFound: {}", r))
+ }
+ ProgramInternalExecuteError::Other(e) => ChainProcessError::Other(e),
+ ProgramInternalExecuteError::IO(e) => {
+ ChainProcessError::Other(format!("IOError: {:?}", e))
+ }
+ }
+ }
+}