1use std::fmt;
4
5#[derive(Debug)]
7pub enum SolanaKiteError {
8 TransactionFailed(String),
10 ProgramDeploymentFailed(String),
12 TokenOperationFailed(String),
14 AccountOperationFailed(String),
16 IoError(std::io::Error),
18}
19
20impl fmt::Display for SolanaKiteError {
21 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
22 match self {
23 SolanaKiteError::TransactionFailed(msg) => {
24 write!(f, "Transaction failed: {}", msg)
25 }
26 SolanaKiteError::ProgramDeploymentFailed(msg) => {
27 write!(f, "Program deployment failed: {}", msg)
28 }
29 SolanaKiteError::TokenOperationFailed(msg) => {
30 write!(f, "Token operation failed: {}", msg)
31 }
32 SolanaKiteError::AccountOperationFailed(msg) => {
33 write!(f, "Account operation failed: {}", msg)
34 }
35 SolanaKiteError::IoError(err) => {
36 write!(f, "I/O error: {}", err)
37 }
38 }
39 }
40}
41
42impl std::error::Error for SolanaKiteError {
43 fn source(&self) -> Option<&(dyn std::error::Error + 'static)> {
44 match self {
45 SolanaKiteError::IoError(err) => Some(err),
46 _ => None,
47 }
48 }
49}
50
51impl From<std::io::Error> for SolanaKiteError {
52 fn from(err: std::io::Error) -> Self {
53 SolanaKiteError::IoError(err)
54 }
55}
56
57#[deprecated(since = "0.1.0", note = "Use SolanaKiteError instead")]
62#[derive(Debug)]
63pub enum TestError {
64 TransactionFailed(String),
66}
67
68#[allow(deprecated)]
69impl fmt::Display for TestError {
70 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
71 match self {
72 TestError::TransactionFailed(msg) => {
73 write!(f, "Transaction failed: {}", msg)
74 }
75 }
76 }
77}
78
79#[allow(deprecated)]
80impl std::error::Error for TestError {}
81
82#[allow(deprecated)]
83impl From<TestError> for SolanaKiteError {
84 fn from(err: TestError) -> Self {
85 match err {
86 TestError::TransactionFailed(msg) => SolanaKiteError::TransactionFailed(msg),
87 }
88 }
89}