rtm_core/models/
accounting_operation.rs1use crate::models::{ClientId, TransactionId};
2
3use super::Transaction;
4
5#[derive(Debug)]
7#[must_use]
8pub enum AccountingOperation {
9 Transaction { transaction: Transaction },
10 Dispute { client_id: ClientId, ref_id: TransactionId },
11 Resolve { client_id: ClientId, ref_id: TransactionId },
12 Chargeback { client_id: ClientId, ref_id: TransactionId },
13}
14
15impl AccountingOperation {
16 pub const fn client_id(&self) -> ClientId {
17 match self {
18 AccountingOperation::Transaction { transaction } => transaction.client_id(),
19 AccountingOperation::Dispute { client_id, .. }
20 | AccountingOperation::Resolve { client_id, .. }
21 | AccountingOperation::Chargeback { client_id, .. } => *client_id,
22 }
23 }
24}