lighter_rust/models/
common.rs1use chrono::{DateTime, Utc};
2use serde::{Deserialize, Serialize};
3
4#[derive(Debug, Clone, Serialize, Deserialize)]
5pub struct ApiResponse<T> {
6 pub success: bool,
7 pub data: Option<T>,
8 pub error: Option<String>,
9 pub timestamp: DateTime<Utc>,
10}
11
12#[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Eq)]
13#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
14pub enum Side {
15 Buy,
16 Sell,
17}
18
19#[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Eq)]
20#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
21pub enum OrderType {
22 Market,
23 Limit,
24 StopLoss,
25 TakeProfit,
26}
27
28#[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Eq)]
29#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
30pub enum OrderStatus {
31 Pending,
32 Open,
33 PartiallyFilled,
34 Filled,
35 Cancelled,
36 Rejected,
37}
38
39#[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Eq)]
40#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
41pub enum AccountTier {
42 Standard,
43 Premium,
44}
45
46#[derive(Debug, Clone, Serialize, Deserialize)]
47pub struct Pagination {
48 pub page: u32,
49 pub limit: u32,
50 pub total: u64,
51 pub has_next: bool,
52}
53
54#[derive(Debug, Clone, Serialize, Deserialize)]
55pub struct PriceLevel {
56 pub price: String,
57 pub quantity: String,
58}
59
60#[derive(Debug, Clone, Serialize, Deserialize)]
61pub struct OrderBook {
62 pub bids: Vec<PriceLevel>,
63 pub asks: Vec<PriceLevel>,
64 pub timestamp: DateTime<Utc>,
65}