aboutsummaryrefslogtreecommitdiff
path: root/mingling_core/src/asset/chain
diff options
context:
space:
mode:
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))
+ }
+ }
+ }
+}