dpp_domain/domain/transfer/
error.rs1use super::status::TransferStatus;
4
5#[derive(Debug, Clone, PartialEq)]
7#[non_exhaustive]
8pub enum TransferError {
9 OperatorMismatch { expected: String, got: String },
12 TransferAlreadyPending,
14 InvalidState {
16 current: TransferStatus,
17 action: String,
18 },
19}
20
21impl std::fmt::Display for TransferError {
22 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
23 match self {
24 TransferError::OperatorMismatch { expected, got } => {
25 write!(f, "operator mismatch: expected {expected}, got {got}")
26 }
27 TransferError::TransferAlreadyPending => {
28 write!(f, "a transfer is already pending for this passport")
29 }
30 TransferError::InvalidState { current, action } => {
31 write!(f, "cannot {action}: transfer is in {current:?} state")
32 }
33 }
34 }
35}
36
37impl std::error::Error for TransferError {}