dceapi_rs/services/
settle.rs

1//! Settlement service for settlement parameter APIs.
2
3use crate::error::Result;
4use crate::http::{BaseClient, RequestOptions};
5use crate::models::{SettleParam, SettleParamRequest};
6
7/// API endpoint for settlement parameters.
8const PATH_GET_SETTLE_PARAM: &str = "/dceapi/forward/publicweb/tradepara/futAndOptSettle";
9
10/// Settlement service for accessing settlement parameters.
11#[derive(Debug, Clone)]
12pub struct SettleService {
13    client: BaseClient,
14}
15
16impl SettleService {
17    /// Create a new settlement service.
18    pub fn new(client: BaseClient) -> Self {
19        SettleService { client }
20    }
21
22    /// Get settlement parameters.
23    ///
24    /// Returns settlement prices, fees, and margin rates for contracts.
25    ///
26    /// # Arguments
27    /// * `req` - Request with variety_id, trade_date, trade_type, and lang
28    /// * `opts` - Optional request options
29    pub async fn get_settle_param(
30        &self,
31        req: &SettleParamRequest,
32        opts: Option<RequestOptions>,
33    ) -> Result<Vec<SettleParam>> {
34        self.client.do_post(PATH_GET_SETTLE_PARAM, req, opts).await
35    }
36}