cryptomarket/api/response/income_methods/
mod.rs

1use crate::prelude::*;
2pub use spot_order::*;
3pub use spot_trade::*;
4pub use transaction::*;
5
6mod spot_order;
7mod spot_trade;
8mod transaction;
9#[non_exhaustive]
10#[derive(Serialize, Deserialize, Clone, Debug)]
11#[serde(tag = "method")]
12#[serde(rename_all = "snake_case")]
13
14pub enum IncomeMethods {
15    SpotOrder { params: Order },
16    SpotOrders { params: Vec<Order> },
17    TransactionUpdate { params: Transaction },
18    WalletBalances { params: Vec<super::Balance> },
19    WalletBalanceUpdate { params: super::Balance },
20}
21
22use IncomeMethods::*;
23impl IncomeMethods {
24    pub fn method(&self) -> &'static str {
25        match self {
26            | SpotOrders { .. } => "spot_orders",
27            | SpotOrder { .. } => "spot_order",
28            | TransactionUpdate { .. } => "transaction_update",
29            | WalletBalances { .. } => "wallet_balances",
30            | WalletBalanceUpdate { .. } => "wallet_balance_update",
31        }
32    }
33}