openlimits_coinbase/model/websocket/
done.rs

1use rust_decimal::prelude::Decimal;
2use serde::Deserialize;
3use super::OrderSide;
4use super::Reason;
5use super::shared::string_to_decimal;
6
7#[derive(Deserialize, Debug, Clone, PartialEq)]
8#[serde(untagged)]
9pub enum Done {
10    Limit {
11        time: String,
12        product_id: String,
13        sequence: Option<usize>,
14        #[serde(with = "string_to_decimal")]
15        price: Decimal,
16        order_id: String,
17        reason: Reason,
18        side: OrderSide,
19        #[serde(with = "string_to_decimal")]
20        remaining_size: Decimal,
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        reason: Reason,
31        side: OrderSide,
32    },
33}