Enum cosmwasm_std::StdError [−][src]
pub enum StdError { VerificationErr { source: VerificationError, }, RecoverPubkeyErr { source: RecoverPubkeyError, }, GenericErr { msg: String, }, InvalidBase64 { msg: String, }, InvalidDataSize { expected: u64, actual: u64, }, InvalidUtf8 { msg: String, }, NotFound { kind: String, }, ParseErr { target_type: String, msg: String, }, SerializeErr { source_type: String, msg: String, }, Overflow { source: OverflowError, }, DivideByZero { source: DivideByZeroError, }, }
Structured error type for init, execute and query.
This can be serialized and passed over the Wasm/VM boundary, which allows us to use structured error types in e.g. integration tests. In that process backtraces are stripped off.
The prefix “Std” means “the standard error within the standard library”. This is not the only result/error type in cosmwasm-std.
When new cases are added, they should describe the problem rather than what was attempted (e.g. InvalidBase64 is preferred over Base64DecodingErr). In the long run this allows us to get rid of the duplication in “StdError::FooErr”.
Checklist for adding a new error:
- Add enum case
- Add creator function in std_error_helpers.rs
Variants
Show fields
Fields of VerificationErr
source: VerificationError
Show fields
Fields of RecoverPubkeyErr
source: RecoverPubkeyError
Whenever there is no specific error type available
Show fields
Fields of GenericErr
msg: String
Show fields
Fields of InvalidBase64
msg: String
Whenever UTF-8 bytes cannot be decoded into a unicode string, e.g. in String::from_utf8 or str::from_utf8.
Show fields
Fields of InvalidUtf8
msg: String
Show fields
Fields of NotFound
kind: String
Show fields
Fields of Overflow
source: OverflowError
Implementations
impl StdError
[src]
impl StdError
[src]pub fn verification_err(source: VerificationError) -> Self
[src]
pub fn recover_pubkey_err(source: RecoverPubkeyError) -> Self
[src]
pub fn generic_err<S: Into<String>>(msg: S) -> Self
[src]
pub fn invalid_base64<S: ToString>(msg: S) -> Self
[src]
pub fn invalid_data_size(expected: usize, actual: usize) -> Self
[src]
pub fn invalid_utf8<S: ToString>(msg: S) -> Self
[src]
pub fn not_found<S: Into<String>>(kind: S) -> Self
[src]
pub fn parse_err<T: Into<String>, M: ToString>(target: T, msg: M) -> Self
[src]
pub fn serialize_err<S: Into<String>, M: ToString>(source: S, msg: M) -> Self
[src]
pub fn overflow(source: OverflowError) -> Self
[src]
pub fn divide_by_zero(source: DivideByZeroError) -> Self
[src]
Trait Implementations
impl From<FromUtf8Error> for StdError
[src]
impl From<FromUtf8Error> for StdError
[src]fn from(source: FromUtf8Error) -> Self
[src]
impl From<OverflowError> for StdError
[src]
impl From<OverflowError> for StdError
[src]fn from(source: OverflowError) -> Self
[src]
impl From<RecoverPubkeyError> for StdError
[src]
impl From<RecoverPubkeyError> for StdError
[src]fn from(source: RecoverPubkeyError) -> Self
[src]
impl From<VerificationError> for StdError
[src]
impl From<VerificationError> for StdError
[src]fn from(source: VerificationError) -> Self
[src]
Auto Trait Implementations
impl RefUnwindSafe for StdError
impl RefUnwindSafe for StdError
impl UnwindSafe for StdError
impl UnwindSafe for StdError
Blanket Implementations
impl<T> FmtForward for T
impl<T> FmtForward for T
pub fn fmt_binary(self) -> FmtBinary<Self> where
Self: Binary,
Self: Binary,
pub fn fmt_display(self) -> FmtDisplay<Self> where
Self: Display,
Self: Display,
pub fn fmt_lower_exp(self) -> FmtLowerExp<Self> where
Self: LowerExp,
Self: LowerExp,
pub fn fmt_lower_hex(self) -> FmtLowerHex<Self> where
Self: LowerHex,
Self: LowerHex,
pub fn fmt_octal(self) -> FmtOctal<Self> where
Self: Octal,
Self: Octal,
pub fn fmt_pointer(self) -> FmtPointer<Self> where
Self: Pointer,
Self: Pointer,
pub fn fmt_upper_exp(self) -> FmtUpperExp<Self> where
Self: UpperExp,
Self: UpperExp,
pub fn fmt_upper_hex(self) -> FmtUpperHex<Self> where
Self: UpperHex,
Self: UpperHex,
impl<T> PipeAsRef for T
impl<T> PipeAsRef for T
pub fn pipe_as_ref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R where
Self: AsRef<T>,
T: 'a,
R: 'a,
Self: AsRef<T>,
T: 'a,
R: 'a,
pub fn pipe_as_mut<'a, T, R>(
&'a mut self,
func: impl FnOnce(&'a mut T) -> R
) -> R where
Self: AsMut<T>,
T: 'a,
R: 'a,
&'a mut self,
func: impl FnOnce(&'a mut T) -> R
) -> R where
Self: AsMut<T>,
T: 'a,
R: 'a,
impl<T> PipeBorrow for T
impl<T> PipeBorrow for T
pub fn pipe_borrow<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R where
Self: Borrow<T>,
T: 'a,
R: 'a,
Self: Borrow<T>,
T: 'a,
R: 'a,
pub fn pipe_borrow_mut<'a, T, R>(
&'a mut self,
func: impl FnOnce(&'a mut T) -> R
) -> R where
Self: BorrowMut<T>,
T: 'a,
R: 'a,
&'a mut self,
func: impl FnOnce(&'a mut T) -> R
) -> R where
Self: BorrowMut<T>,
T: 'a,
R: 'a,
impl<T> PipeDeref for T
impl<T> PipeDeref for T
pub fn pipe_deref<'a, R>(
&'a self,
func: impl FnOnce(&'a Self::Target) -> R
) -> R where
Self: Deref,
R: 'a,
&'a self,
func: impl FnOnce(&'a Self::Target) -> R
) -> R where
Self: Deref,
R: 'a,
pub fn pipe_deref_mut<'a, R>(
&'a mut self,
func: impl FnOnce(&'a mut Self::Target) -> R
) -> R where
Self: DerefMut,
R: 'a,
&'a mut self,
func: impl FnOnce(&'a mut Self::Target) -> R
) -> R where
Self: DerefMut,
R: 'a,
impl<T> Same<T> for T
impl<T> Same<T> for T
type Output = T
Should always be Self
impl<T, U> TapAsRef<U> for T where
U: ?Sized,
impl<T, U> TapAsRef<U> for T where
U: ?Sized,
pub fn tap_ref<F, R>(self, func: F) -> Self where
Self: AsRef<T>,
F: FnOnce(&T) -> R,
Self: AsRef<T>,
F: FnOnce(&T) -> R,
pub fn tap_ref_dbg<F, R>(self, func: F) -> Self where
Self: AsRef<T>,
F: FnOnce(&T) -> R,
Self: AsRef<T>,
F: FnOnce(&T) -> R,
pub fn tap_ref_mut<F, R>(self, func: F) -> Self where
Self: AsMut<T>,
F: FnOnce(&mut T) -> R,
Self: AsMut<T>,
F: FnOnce(&mut T) -> R,
pub fn tap_ref_mut_dbg<F, R>(self, func: F) -> Self where
Self: AsMut<T>,
F: FnOnce(&mut T) -> R,
Self: AsMut<T>,
F: FnOnce(&mut T) -> R,
impl<T, U> TapBorrow<U> for T where
U: ?Sized,
impl<T, U> TapBorrow<U> for T where
U: ?Sized,
pub fn tap_borrow<F, R>(self, func: F) -> Self where
Self: Borrow<T>,
F: FnOnce(&T) -> R,
Self: Borrow<T>,
F: FnOnce(&T) -> R,
pub fn tap_borrow_dbg<F, R>(self, func: F) -> Self where
Self: Borrow<T>,
F: FnOnce(&T) -> R,
Self: Borrow<T>,
F: FnOnce(&T) -> R,
pub fn tap_borrow_mut<F, R>(self, func: F) -> Self where
Self: BorrowMut<T>,
F: FnOnce(&mut T) -> R,
Self: BorrowMut<T>,
F: FnOnce(&mut T) -> R,
pub fn tap_borrow_mut_dbg<F, R>(self, func: F) -> Self where
Self: BorrowMut<T>,
F: FnOnce(&mut T) -> R,
Self: BorrowMut<T>,
F: FnOnce(&mut T) -> R,
impl<T> TapDeref for T
impl<T> TapDeref for T
pub fn tap_deref<F, R>(self, func: F) -> Self where
Self: Deref,
F: FnOnce(&Self::Target) -> R,
Self: Deref,
F: FnOnce(&Self::Target) -> R,
pub fn tap_deref_dbg<F, R>(self, func: F) -> Self where
Self: Deref,
F: FnOnce(&Self::Target) -> R,
Self: Deref,
F: FnOnce(&Self::Target) -> R,
pub fn tap_deref_mut<F, R>(self, func: F) -> Self where
Self: DerefMut,
F: FnOnce(&mut Self::Target) -> R,
Self: DerefMut,
F: FnOnce(&mut Self::Target) -> R,
pub fn tap_deref_mut_dbg<F, R>(self, func: F) -> Self where
Self: DerefMut,
F: FnOnce(&mut Self::Target) -> R,
Self: DerefMut,
F: FnOnce(&mut Self::Target) -> R,