space-traders 0.1.1

Async SpaceTraders API client for Rust.
Documentation
//! Generated by: <https://openapi-generator.tech>
//!
//! Version of specification: `2.0.0`

use serde::{Deserialize, Serialize};

/// A resource survey of a waypoint, detailing a specific extraction location and the types of resources that can be found there.
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct Survey {
    /// A unique signature for the location of this survey. This signature is verified when attempting an extraction using this survey.
    #[serde(rename = "signature")]
    pub signature: String,
    /// The symbol of the waypoint that this survey is for.
    #[serde(rename = "symbol")]
    pub symbol: String,
    /// A list of deposits that can be found at this location.
    #[serde(rename = "deposits")]
    pub deposits: Vec<crate::models::SurveyDeposit>,
    /// The date and time when the survey expires. After this date and time, the survey will no longer be available for extraction.
    #[serde(rename = "expiration")]
    pub expiration: String,
    /// The size of the deposit. This value indicates how much can be extracted from the survey before it is exhausted.
    #[serde(rename = "size")]
    pub size: Size,
}

impl Survey {
    /// Create value with optional fields set to `None`.
    #[allow(clippy::too_many_arguments)]
    pub fn new(
        signature: String,
        symbol: String,
        deposits: Vec<crate::models::SurveyDeposit>,
        expiration: String,
        size: Size,
    ) -> Survey {
        Survey {
            signature,
            symbol,
            deposits,
            expiration,
            size,
        }
    }
}

/// The size of the deposit. This value indicates how much can be extracted from the survey before it is exhausted.
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Size {
    #[serde(rename = "SMALL")]
    Small,
    #[serde(rename = "MODERATE")]
    Moderate,
    #[serde(rename = "LARGE")]
    Large,
}

impl Default for Size {
    fn default() -> Size {
        Self::Small
    }
}