-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy patherrors.rs
50 lines (44 loc) · 1.37 KB
/
errors.rs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
use alloy_sol_types::sol;
use std::string::FromUtf8Error;
use stylus_sdk::call::MethodError;
sol! {
error InvalidUser();
error InvalidPrice();
error GeneralError(string msg);
error InvalidCall();
error NotSupported();
error InvalidSaving();
}
pub enum BitsaveErrors {
InvalidUser(InvalidUser),
GeneralError(GeneralError),
InvalidCall(InvalidCall),
FromUtf8Error(FromUtf8Error),
InvalidPrice(InvalidPrice),
InvalidSaving(InvalidSaving),
NotSupported(NotSupported),
}
impl From<BitsaveErrors> for Vec<u8> {
fn from(val: BitsaveErrors) -> Self {
match val {
BitsaveErrors::InvalidPrice(err) => err.encode(),
BitsaveErrors::InvalidUser(err) => err.encode(),
BitsaveErrors::GeneralError(err) => err.encode(),
BitsaveErrors::FromUtf8Error(err) => err.into_bytes(),
BitsaveErrors::NotSupported(err) => err.encode(),
BitsaveErrors::InvalidCall(err) => err.encode(),
BitsaveErrors::InvalidSaving(err) => err.encode(),
}
}
}
impl From<FromUtf8Error> for BitsaveErrors {
fn from(err: FromUtf8Error) -> Self {
Self::FromUtf8Error(err)
}
}
impl From<GeneralError> for BitsaveErrors {
fn from(err: GeneralError) -> Self {
Self::GeneralError(err)
}
}
pub type BResult<T, E = BitsaveErrors> = core::result::Result<T, E>;