lighter-rust 0.2.0

A comprehensive Rust SDK for the Lighter trading platform with async/await, WebSocket support, and Ethereum wallet integration
/*
 *
 *
 * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
 *
 * The version of the OpenAPI document:
 *
 * Generated by: https://openapi-generator.tech
 */

use crate::models;
use serde::{Deserialize, Serialize};

#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct ReqGetAccountPnL {
    #[serde(rename = "auth", skip_serializing_if = "Option::is_none")]
    pub auth: Option<String>,
    #[serde(rename = "by")]
    pub by: By,
    #[serde(rename = "value")]
    pub value: String,
    #[serde(rename = "resolution")]
    pub resolution: Resolution,
    #[serde(rename = "start_timestamp")]
    pub start_timestamp: i64,
    #[serde(rename = "end_timestamp")]
    pub end_timestamp: i64,
    #[serde(rename = "count_back")]
    pub count_back: i64,
    #[serde(rename = "ignore_transfers", skip_serializing_if = "Option::is_none")]
    pub ignore_transfers: Option<bool>,
}

impl ReqGetAccountPnL {
    pub fn new(
        by: By,
        value: String,
        resolution: Resolution,
        start_timestamp: i64,
        end_timestamp: i64,
        count_back: i64,
    ) -> ReqGetAccountPnL {
        ReqGetAccountPnL {
            auth: None,
            by,
            value,
            resolution,
            start_timestamp,
            end_timestamp,
            count_back,
            ignore_transfers: None,
        }
    }
}
///
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum By {
    #[serde(rename = "index")]
    Index,
}

impl Default for By {
    fn default() -> By {
        Self::Index
    }
}
///
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Resolution {
    #[serde(rename = "1m")]
    Variant1m,
    #[serde(rename = "5m")]
    Variant5m,
    #[serde(rename = "15m")]
    Variant15m,
    #[serde(rename = "1h")]
    Variant1h,
    #[serde(rename = "4h")]
    Variant4h,
    #[serde(rename = "1d")]
    Variant1d,
}

impl Default for Resolution {
    fn default() -> Resolution {
        Self::Variant1m
    }
}