dhan_rs/api/funds.rs
1//! Funds & Margin endpoints — Margin Calculator, Fund Limit.
2
3use crate::client::DhanClient;
4use crate::error::Result;
5use crate::types::funds::*;
6
7impl DhanClient {
8 /// Calculate margin requirement for a single order.
9 ///
10 /// **Endpoint:** `POST /v2/margincalculator`
11 pub async fn calculate_margin(
12 &self,
13 req: &MarginCalculatorRequest,
14 ) -> Result<MarginCalculatorResponse> {
15 self.post("/v2/margincalculator", req).await
16 }
17
18 /// Calculate margin requirements for multiple scripts in a single request.
19 ///
20 /// **Endpoint:** `POST /v2/margincalculator/multi`
21 pub async fn calculate_multi_margin(
22 &self,
23 req: &MultiMarginRequest,
24 ) -> Result<MultiMarginResponse> {
25 self.post("/v2/margincalculator/multi", req).await
26 }
27
28 /// Retrieve fund limits for the trading account.
29 ///
30 /// Returns balance, margin utilised, collateral, and other fund details.
31 ///
32 /// **Endpoint:** `GET /v2/fundlimit`
33 pub async fn get_fund_limit(&self) -> Result<FundLimit> {
34 self.get("/v2/fundlimit").await
35 }
36}