openlimits_coinbase/model/websocket/
received.rs1use super::shared::string_to_decimal;
2use super::shared::string_to_opt_decimal;
3use rust_decimal::prelude::Decimal;
4use serde::Deserialize;
5
6#[derive(Deserialize, Debug, Clone, PartialEq)]
7#[serde(tag = "order_type")]
8#[serde(rename_all = "camelCase")]
9pub enum Received {
10 Limit {
11 time: String,
12 product_id: String,
13 sequence: usize,
14 order_id: String,
15 client_oid: Option<String>,
16 #[serde(with = "string_to_decimal")]
17 size: Decimal,
18 #[serde(with = "string_to_decimal")]
19 price: Decimal,
20 side: super::OrderSide,
21 user_id: Option<String>,
22 #[serde(default)]
23 profile_id: Option<String>,
24 },
25 Market {
26 time: String,
27 product_id: String,
28 sequence: usize,
29 order_id: String,
30 client_oid: Option<String>,
31 #[serde(default)]
32 #[serde(with = "string_to_opt_decimal")]
33 funds: Option<Decimal>,
34 side: super::OrderSide,
35 },
36}