riot-api 0.1.2

A rust crate to interact with Riot Games Developer API
Documentation
use serde::Deserialize;

#[derive(Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct PlatformDataDto {
    pub id: String,
    pub name: String,
    pub locales: Vec<String>,
    pub maintenances: Vec<StatusDto>,
    pub incidents: Vec<StatusDto>,
}

#[derive(Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct StatusDto {
    pub id: i32,
    pub maintenance_status: MaintenanceStatus,
    pub incident_severity: IncidentSeverity,
    pub titles: Vec<ContentDto>,
    pub updates: Vec<UpdateDto>,
    pub created_at: String,
    pub archive_at: Option<String>,
    pub updated_at: Option<String>,
    pub platforms: Vec<Platform>,
}

#[derive(Debug, Deserialize)]
#[serde(rename_all = "snake_case")]
pub enum MaintenanceStatus {
    Scheduled,
    InProgress,
    Complete,
}

#[derive(Debug, Deserialize)]
#[serde(rename_all = "lowercase")]
pub enum IncidentSeverity {
    Info,
    Warning,
    Critical,
}

#[derive(Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ContentDto {
    pub locale: String,
    pub content: String,
}

#[derive(Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct UpdateDto {
    pub id: i32,
    pub author: String,
    pub publish: bool,
    pub publish_location: Vec<PublishLocation>,
    pub translations: Vec<ContentDto>,
    pub created_at: String,
    pub updated_at: String,
}

#[derive(Debug, Deserialize)]
#[serde(rename_all = "lowercase")]
pub enum PublishLocation {
    RiotClient,
    RiotStatus,
    Game,
}

#[derive(Debug, Deserialize)]
#[serde(rename_all = "lowercase")]
pub enum Platform {
    Windows,
    Macos,
    Android,
    Ios,
    Ps4,
    Xbone,
    Switch,
}