pandascore 0.5.3

A Rust client for the Pandascore API
Documentation
use std::ops::{Deref, DerefMut};

use compact_str::CompactString;
use serde::Deserialize;
use time::OffsetDateTime;

use crate::model::{series::CompactSeries, VideoGame};

#[derive(Debug, Clone, Eq, PartialEq, Hash, Deserialize)]
#[non_exhaustive]
pub struct League {
    #[serde(flatten)]
    pub inner: CompactLeague,

    pub series: Vec<CompactSeries>,
    #[serde(rename = "videogame")]
    pub video_game: VideoGame,
}

#[derive(Debug, Clone, Eq, PartialEq, Hash, Deserialize)]
#[non_exhaustive]
pub struct CompactLeague {
    pub id: u64,
    pub image_url: Option<String>,
    #[serde(with = "time::serde::iso8601")]
    pub modified_at: OffsetDateTime,
    pub name: CompactString,
    pub slug: CompactString,
    pub url: Option<String>,
}

impl Deref for League {
    type Target = CompactLeague;

    fn deref(&self) -> &Self::Target {
        &self.inner
    }
}

impl DerefMut for League {
    fn deref_mut(&mut self) -> &mut Self::Target {
        &mut self.inner
    }
}

impl AsRef<CompactLeague> for League {
    fn as_ref(&self) -> &CompactLeague {
        &self.inner
    }
}

impl AsMut<CompactLeague> for League {
    fn as_mut(&mut self) -> &mut CompactLeague {
        &mut self.inner
    }
}

impl From<League> for CompactLeague {
    fn from(league: League) -> Self {
        league.inner
    }
}