cryptomarket/api/response/income_methods/
mod.rs1use 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}