Skip to main content

upstox_rust_sdk/models/orders/
modify_order_request.rs

1use {
2    crate::models::orders::{OrderType, ValidityType},
3    serde::Serialize,
4    serde_valid::Validate,
5};
6
7#[derive(Serialize, Debug, Validate)]
8pub struct ModifyOrderRequest {
9    // For commodity - number of lots is accepted. For other Futures & Options and equities - number of units is accepted in multiples of the tick size.
10    #[validate(exclusive_minimum = 0, message = "quantity must be greater than 0")]
11    #[serde(skip_serializing_if = "Option::is_none")]
12    pub quantity: Option<u32>,
13    pub validity: ValidityType,
14    #[validate(exclusive_minimum = 0.0, message = "price must be greater than 0.0")]
15    pub price: f64,
16    #[validate(pattern = r"^[-a-zA-Z0-9]+", message = "Invalid order_id")]
17    pub order_id: String,
18    pub order_type: OrderType,
19    #[serde(skip_serializing_if = "Option::is_none")]
20    pub disclosed_quantity: Option<u32>,
21    #[serde(skip_serializing_if = "Option::is_none")]
22    pub trigger_price: Option<f64>,
23}