use crate::rest::client::ServerResponse;
use crate::rest::enums::category::Category;
use crate::rest::enums::interval_time::IntervalTime;
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct GetOpenInterestParams {
pub category: Category, pub symbol: String, #[serde(rename = "intervalTime")]
pub interval_time: IntervalTime, #[serde(rename = "startTime")]
pub start_time: Option<u64>, #[serde(rename = "endTime")]
pub end_time: Option<u64>, pub limit: Option<u32>, pub cursor: Option<String>, }
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct OpenInterest {
#[serde(rename = "openInterest")]
pub open_interest: String,
pub timestamp: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct OpenInterestResult {
pub symbol: String,
pub category: String,
pub list: Vec<OpenInterest>,
#[serde(rename = "nextPageCursor")]
pub next_page_cursor: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct OpenInterestResponse(ServerResponse<OpenInterestResult>);
impl OpenInterestResponse {
pub fn into_inner(self) -> OpenInterestResult {
self.0.result
}
pub fn into_response(self) -> ServerResponse<OpenInterestResult> {
self.0
}
}