Skip to main content

longbridge/asset/requests/
get_statement_list.rs

1use serde::Serialize;
2
3/// Statement type
4#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5pub enum StatementType {
6    /// Daily statement
7    Daily = 1,
8    /// Monthly statement
9    Monthly = 2,
10}
11
12impl From<StatementType> for i32 {
13    #[inline]
14    fn from(value: StatementType) -> Self {
15        value as i32
16    }
17}
18
19/// Options for get statement data list request
20#[derive(Debug, Serialize, Clone)]
21pub struct GetStatementListOptions {
22    statement_type: i32,
23    start_date: i32,
24    limit: i32,
25}
26
27impl GetStatementListOptions {
28    /// Create a new `GetStatementDataListOptions`
29    #[inline]
30    pub fn new(statement_type: StatementType) -> Self {
31        Self {
32            statement_type: statement_type.into(),
33            start_date: 1,
34            limit: 20,
35        }
36    }
37
38    /// Set the page number
39    #[inline]
40    #[must_use]
41    pub fn page(self, page: i32) -> Self {
42        Self {
43            start_date: page,
44            ..self
45        }
46    }
47
48    /// Set the page size
49    #[inline]
50    #[must_use]
51    pub fn page_size(self, page_size: i32) -> Self {
52        Self {
53            limit: page_size,
54            ..self
55        }
56    }
57}