Skip to main content

ek_data/
cancel_request.rs

1//! 撤单请求(`object.py:592-604`;通常由 [`crate::order::OrderData::create_cancel_request`]
2//! 生成)。
3
4use crate::constant::Exchange;
5
6/// 发往网关的撤单请求。
7#[derive(Debug, Clone, PartialEq, Eq, Default)]
8#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
9pub struct CancelRequest {
10    /// 委托号(网关内唯一)
11    pub orderid: String,
12    /// 合约代码
13    pub symbol: String,
14    /// 交易所
15    pub exchange: Exchange,
16}
17
18impl CancelRequest {
19    /// `en_symbol`(派生方法)。
20    pub fn en_symbol(&self) -> String {
21        crate::symbol::vt_symbol(&self.symbol, self.exchange)
22    }
23
24    /// `en_orderid` = `"{gateway_name}.{orderid}"`(与 OrderData 同式)。
25    pub fn en_orderid(&self, gateway_name: &str) -> String {
26        format!("{gateway_name}.{}", self.orderid)
27    }
28}