use core::fmt::{self, Display, Formatter};
use std::error::Error as StdError;
#[cfg(doc)]
use super::{TransactionV1, TransactionV1Builder};
#[derive(Clone, Eq, PartialEq, Debug)]
#[non_exhaustive]
pub enum TransactionV1BuilderError {
MissingInitiatorAddr,
MissingChainName,
CouldNotSerializeField {
field_index: u16,
},
}
impl Display for TransactionV1BuilderError {
fn fmt(&self, formatter: &mut Formatter) -> fmt::Result {
match self {
TransactionV1BuilderError::MissingInitiatorAddr => {
write!(
formatter,
"transaction requires account - use `with_account` or `with_secret_key`"
)
}
TransactionV1BuilderError::MissingChainName => {
write!(
formatter,
"transaction requires chain name - use `with_chain_name`"
)
}
TransactionV1BuilderError::CouldNotSerializeField { field_index } => {
write!(formatter, "Cannot serialize field at index {}", field_index)
}
}
}
}
impl StdError for TransactionV1BuilderError {}