1use displaydoc::Display;
4use massa_serialization::SerializeError;
5use thiserror::Error;
6pub type ModelsResult<T, E = ModelsError> = core::result::Result<T, E>;
8
9#[non_exhaustive]
11#[derive(Display, Error, Debug, Clone)]
12pub enum ModelsError {
13 HashError,
15 SerializeError(String),
17 SerializationError(#[from] SerializeError),
19 DeserializeError(String),
21 BufferError(String),
23 MassaHashError(#[from] massa_hash::MassaHashError),
25 MassaSignatureError(#[from] massa_signature::MassaSignatureError),
27 ThreadOverflowError,
29 PeriodOverflowError,
31 AmountParseError(String),
33 AddressParseError(String),
35 NodeIdParseError,
37 BlockIdParseError,
39 OperationIdParseError,
41 EndorsementIdParseError,
43 CheckedOperationError(String),
45 InvalidVersionError(String),
47 InvalidLedgerChange(String),
49 TimeOverflowError,
51 TimeError(#[from] massa_time::TimeError),
53 InvalidRollUpdate(String),
55 AmountOverflowError,
57 WrongPrefix(String, String),
59 OperationPrefixJoinError,
61 OutdatedBootstrapCursor,
63 ErrorRaised(String),
65 DeferredCallIdParseError,
67}
68
69impl From<nom::Err<nom::error::Error<&[u8]>>> for ModelsError {
70 fn from(err: nom::Err<nom::error::Error<&[u8]>>) -> Self {
71 ModelsError::DeserializeError(err.to_string())
72 }
73}
74
75impl From<&'static str> for ModelsError {
76 fn from(err: &'static str) -> Self {
77 ModelsError::ErrorRaised(err.to_string())
78 }
79}