update stepper errors

This commit is contained in:
vms 2020-10-08 11:41:00 +03:00
parent 1b3c73f03b
commit 1c2578ede4
2 changed files with 71 additions and 41 deletions

48
Cargo.lock generated
View File

@ -693,15 +693,6 @@ dependencies = [
"serde_json",
]
[[package]]
name = "fluence"
version = "0.2.8"
source = "git+https://github.com/fluencelabs/rust-sdk#4d6c4f6b862c22ebd8db7244daac0adf3f1bd2fd"
dependencies = [
"fluence-sdk-macro 0.2.8 (git+https://github.com/fluencelabs/rust-sdk)",
"fluence-sdk-main 0.2.8 (git+https://github.com/fluencelabs/rust-sdk)",
]
[[package]]
name = "fluence"
version = "0.2.8"
@ -712,6 +703,15 @@ dependencies = [
"fluence-sdk-main 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "fluence"
version = "0.2.8"
source = "git+https://github.com/fluencelabs/rust-sdk#4d6c4f6b862c22ebd8db7244daac0adf3f1bd2fd"
dependencies = [
"fluence-sdk-macro 0.2.8 (git+https://github.com/fluencelabs/rust-sdk)",
"fluence-sdk-main 0.2.8 (git+https://github.com/fluencelabs/rust-sdk)",
]
[[package]]
name = "fluence-app-service"
version = "0.1.8"
@ -747,14 +747,6 @@ dependencies = [
"wasmer-wasi-fl",
]
[[package]]
name = "fluence-sdk-macro"
version = "0.2.8"
source = "git+https://github.com/fluencelabs/rust-sdk#4d6c4f6b862c22ebd8db7244daac0adf3f1bd2fd"
dependencies = [
"fluence-sdk-wit 0.2.8 (git+https://github.com/fluencelabs/rust-sdk)",
]
[[package]]
name = "fluence-sdk-macro"
version = "0.2.8"
@ -765,13 +757,11 @@ dependencies = [
]
[[package]]
name = "fluence-sdk-main"
name = "fluence-sdk-macro"
version = "0.2.8"
source = "git+https://github.com/fluencelabs/rust-sdk#4d6c4f6b862c22ebd8db7244daac0adf3f1bd2fd"
dependencies = [
"fluence-sdk-macro 0.2.8 (git+https://github.com/fluencelabs/rust-sdk)",
"log",
"serde",
"fluence-sdk-wit 0.2.8 (git+https://github.com/fluencelabs/rust-sdk)",
]
[[package]]
@ -786,9 +776,20 @@ dependencies = [
]
[[package]]
name = "fluence-sdk-wit"
name = "fluence-sdk-main"
version = "0.2.8"
source = "git+https://github.com/fluencelabs/rust-sdk#4d6c4f6b862c22ebd8db7244daac0adf3f1bd2fd"
dependencies = [
"fluence-sdk-macro 0.2.8 (git+https://github.com/fluencelabs/rust-sdk)",
"log",
"serde",
]
[[package]]
name = "fluence-sdk-wit"
version = "0.2.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "560baf91197ded38a99a5c94ff366a3dd971ebf33f5d987ecce31d3dedf86d17"
dependencies = [
"proc-macro2",
"quote",
@ -801,8 +802,7 @@ dependencies = [
[[package]]
name = "fluence-sdk-wit"
version = "0.2.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "560baf91197ded38a99a5c94ff366a3dd971ebf33f5d987ecce31d3dedf86d17"
source = "git+https://github.com/fluencelabs/rust-sdk#4d6c4f6b862c22ebd8db7244daac0adf3f1bd2fd"
dependencies = [
"proc-macro2",
"quote",

View File

@ -22,45 +22,63 @@ use crate::AquamarineVMError;
use std::convert::TryFrom;
use std::error::Error;
#[derive(Debug, Clone, PartialEq, Eq)]
#[derive(Debug, Default, Clone, PartialEq, Eq)]
pub(crate) struct RawStepperOutcome {
pub ret_code: i32,
pub data: String,
pub next_peer_pks: Vec<String>,
}
#[derive(Debug, Clone, PartialEq, Eq)]
#[derive(Debug, Default, Clone, PartialEq, Eq)]
pub struct StepperOutcome {
pub data: String,
pub next_peer_pks: Vec<String>,
}
#[derive(Debug)]
#[derive(Debug, Clone, PartialEq, Eq)]
pub enum StepperError {
/// Errors occurred while parsing aqua script in the form of S expressions.
SExprParseError(String),
/// Errors occurred while parsing supplied data.
DataParseError(String),
DataSerdeError(String),
/// Errors occurred while parsing function arguments of an expression.
FuncArgsSerdeError(String),
/// Errors occurred while parsing returned by call_service value.
CallServiceSerdeError(String),
/// Indicates that environment variable with name CURRENT_PEER_ID isn't set.
CurrentPeerIdNotSet(String),
CurrentPeerIdEnvError(String),
/// Semantic errors in instructions.
InstructionError(String),
/// Semantic errors in instructions.
/// An error is occurred while calling local service via call_service.
LocalServiceError(String),
/// Value with such name isn't presence in data.
/// Value for such name isn't presence in data.
VariableNotFound(String),
/// Value with such path wasn't found in data.
/// Multiple values for such name found.
MultipleVariablesFound(String),
/// Value with such path wasn't found in data with such error.
VariableNotInJsonPath(String),
/// Value for such name isn't presence in data.
IncompatibleJValueType(String),
/// Multiple values found for such json path.
MultipleValuesInJsonPath(String),
/// Fold state wasn't found for such iterator name.
FoldStateNotFound(String),
/// Multiple fold states found for such iterator name.
MultipleFoldStates(String),
/// Related to such ret_code that doesn't have match with current StepperError.
UnknownError(String),
}
@ -71,13 +89,19 @@ impl std::fmt::Display for StepperError {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
match self {
StepperError::SExprParseError(err_msg) => write!(f, "{}", err_msg),
StepperError::DataParseError(err_msg) => write!(f, "{}", err_msg),
StepperError::CurrentPeerIdNotSet(err_msg) => write!(f, "{}", err_msg),
StepperError::DataSerdeError(err_msg) => write!(f, "{}", err_msg),
StepperError::FuncArgsSerdeError(err_msg) => write!(f, "{}", err_msg),
StepperError::CallServiceSerdeError(err_msg) => write!(f, "{}", err_msg),
StepperError::CurrentPeerIdEnvError(err_msg) => write!(f, "{}", err_msg),
StepperError::InstructionError(err_msg) => write!(f, "{}", err_msg),
StepperError::LocalServiceError(err_msg) => write!(f, "{}", err_msg),
StepperError::VariableNotFound(err_msg) => write!(f, "{}", err_msg),
StepperError::MultipleVariablesFound(err_msg) => write!(f, "{}", err_msg),
StepperError::VariableNotInJsonPath(err_msg) => write!(f, "{}", err_msg),
StepperError::IncompatibleJValueType(err_msg) => write!(f, "{}", err_msg),
StepperError::MultipleValuesInJsonPath(err_msg) => write!(f, "{}", err_msg),
StepperError::FoldStateNotFound(err_msg) => write!(f, "{}", err_msg),
StepperError::MultipleFoldStates(err_msg) => write!(f, "{}", err_msg),
StepperError::UnknownError(err_msg) => write!(f, "{}", err_msg),
}
}
@ -101,13 +125,19 @@ impl TryFrom<RawStepperOutcome> for StepperOutcome {
next_peer_pks: raw_outcome.next_peer_pks,
}),
1 => to_vm_error!(SExprParseError),
2 => to_vm_error!(DataParseError),
3 => to_vm_error!(CurrentPeerIdNotSet),
4 => to_vm_error!(InstructionError),
5 => to_vm_error!(LocalServiceError),
6 => to_vm_error!(VariableNotFound),
7 => to_vm_error!(VariableNotInJsonPath),
8 => to_vm_error!(MultipleValuesInJsonPath),
2 => to_vm_error!(DataSerdeError),
3 => to_vm_error!(FuncArgsSerdeError),
4 => to_vm_error!(CallServiceSerdeError),
5 => to_vm_error!(CurrentPeerIdEnvError),
6 => to_vm_error!(InstructionError),
7 => to_vm_error!(LocalServiceError),
8 => to_vm_error!(VariableNotFound),
9 => to_vm_error!(MultipleVariablesFound),
10 => to_vm_error!(VariableNotInJsonPath),
11 => to_vm_error!(IncompatibleJValueType),
12 => to_vm_error!(MultipleValuesInJsonPath),
13 => to_vm_error!(FoldStateNotFound),
14 => to_vm_error!(MultipleFoldStates),
_ => to_vm_error!(UnknownError),
}
}