gmsol_solana_utils/
error.rs1#[derive(Debug, thiserror::Error)]
3pub enum Error {
4 #[error("parse url: {0}")]
6 ParseUrl(#[from] url::ParseError),
7 #[error("parse cluster: {0}")]
9 ParseCluster(&'static str),
10 #[error("merge transaction: {0}")]
12 MergeTransaction(&'static str),
13 #[error("add transaction: {0}")]
15 AddTransaction(&'static str),
16 #[error("compile message: {0}")]
18 CompileMessage(#[from] solana_sdk::message::CompileError),
19 #[cfg(feature = "solana-client")]
21 #[error("client: {0}")]
22 Client(#[from] Box<solana_client::client_error::ClientError>),
23 #[error("signer: {0}")]
25 Signer(#[from] solana_sdk::signer::SignerError),
26 #[error("custom: {0}")]
28 Custom(String),
29}
30
31impl<T> From<(T, Error)> for Error {
32 fn from(value: (T, crate::Error)) -> Self {
33 value.1
34 }
35}
36
37impl Error {
38 pub fn custom(msg: impl ToString) -> Self {
40 Self::Custom(msg.to_string())
41 }
42}