bulk_client/msgs/
conditional.rs1use std::sync::Arc;
2use serde::{Deserialize, Serialize};
3use crate::transaction::{Action, ActionMeta};
4
5#[derive(Clone, Debug, Serialize, Deserialize)]
7pub struct StopOrTP {
8 #[serde(rename = "c")]
10 pub symbol: Arc<str>,
11
12 #[serde(rename = "d")]
14 pub is_above: bool,
15
16 #[serde(rename = "sz", with = "crate::msgs::fixed_point")]
18 pub size: f64,
19
20 #[serde(rename = "tr", with = "crate::msgs::fixed_point")]
22 pub threshold: f64,
23
24 #[serde(rename = "lim", with = "crate::msgs::opt_fixed_point", default = "default_limit")]
26 pub limit: Option<f64>,
27
28 #[serde(skip)]
29 pub meta: ActionMeta,
30}
31
32#[derive(Clone, Debug, Serialize, Deserialize)]
34pub struct Range {
35 #[serde(rename = "c")]
37 pub symbol: Arc<str>,
38
39 #[serde(rename = "d")]
41 pub is_buy: bool,
42
43 #[serde(rename = "sz", with = "crate::msgs::fixed_point")]
45 pub size: f64,
46
47 #[serde(rename = "pmin", with = "crate::msgs::fixed_point")]
49 pub collar_min: f64,
50
51 #[serde(rename = "pmax", with = "crate::msgs::fixed_point")]
53 pub collar_max: f64,
54
55 #[serde(rename = "lmin", with = "crate::msgs::opt_fixed_point", default = "default_limit")]
57 pub limit_min: Option<f64>,
58
59 #[serde(rename = "lmax", with = "crate::msgs::opt_fixed_point", default = "default_limit")]
61 pub limit_max: Option<f64>,
62
63 #[serde(skip)]
64 pub meta: ActionMeta,
65}
66
67#[derive(Clone, Debug, Serialize, Deserialize)]
69pub struct Trigger {
70 #[serde(rename = "c")]
72 pub symbol: Arc<str>,
73
74 #[serde(rename = "d")]
76 pub is_above: bool,
77
78 #[serde(rename = "tr", with = "crate::msgs::fixed_point")]
80 pub threshold: f64,
81
82 pub actions: Vec<Action>,
84
85 #[serde(skip)]
86 pub meta: ActionMeta,
87}
88
89#[derive(Clone, Debug, Serialize, Deserialize)]
94#[serde(rename_all="camelCase")]
95pub struct Trailing {
96 #[serde(rename = "c")]
98 pub symbol: Arc<str>,
99
100 #[serde(rename = "b")]
102 pub is_buy: bool,
103
104 #[serde(rename = "sz", with = "crate::msgs::fixed_point")]
106 pub size: f64,
107
108 #[serde(rename = "trb")]
110 pub trail_bps: u32,
111
112 #[serde(rename = "stb")]
114 pub step_bps: u32,
115
116 #[serde(rename = "lim", with = "crate::msgs::opt_fixed_point", default = "default_limit")]
118 pub limit: Option<f64>,
119
120 #[serde(skip)]
121 pub meta: ActionMeta,
122}
123
124#[derive(Clone, Debug, Serialize, Deserialize)]
129#[serde(rename_all="camelCase")]
130pub struct OnFill {
131 #[serde(rename = "p")]
133 pub parent_seqno: u32,
134
135 pub actions: Vec<Action>,
137
138 #[serde(skip)]
139 pub meta: ActionMeta,
140}
141
142
143fn default_limit() -> Option<f64> {
144 None
145}