binance_client/http_api_v3/data/klines/get/
request.rs1use crate::http_api_v3::data::interval::Interval;
6
7pub struct Query {
11 pub symbol: String,
13 pub interval: Interval,
15 pub start_time: Option<i64>,
17 pub end_time: Option<i64>,
19 pub limit: Option<usize>,
21}
22
23impl Query {
24 const QUERY_INITIAL_CAPACITY: usize = 128;
26
27 pub fn new(
31 symbol: String,
32 interval: Interval,
33 start_time: Option<i64>,
34 end_time: Option<i64>,
35 limit: Option<usize>,
36 ) -> Self {
37 Self {
38 symbol,
39 interval,
40 start_time,
41 end_time,
42 limit,
43 }
44 }
45}
46
47impl ToString for Query {
48 fn to_string(&self) -> String {
49 let mut params = String::with_capacity(Self::QUERY_INITIAL_CAPACITY);
50 params += &format!("symbol={}", self.symbol.to_owned());
51 params += &format!("&interval={}", self.interval);
52 if let Some(start_time) = self.start_time {
53 params += &format!("&startTime={}", start_time);
54 }
55 if let Some(end_time) = self.end_time {
56 params += &format!("&endTime={}", end_time);
57 }
58 if let Some(limit) = self.limit {
59 params += &format!("&limit={}", limit);
60 }
61 params
62 }
63}