use serde::Deserialize;
use serde::Serialize;
#[derive(Debug, Deserialize, Eq, PartialEq, Serialize)]
pub struct EpisodeLink {
pub imdb_id: u32,
pub series_imdb_id: u32,
pub season: Option<u16>,
pub episode: Option<u16>
}
impl From<EpisodeLinkFromImdb> for EpisodeLink {
#[inline]
fn from(input: EpisodeLinkFromImdb) -> Self {
Self{
imdb_id: input.imdb_id,
series_imdb_id: input.series_imdb_id,
season: input.season,
episode: input.episode.map(|i| i as u16)
}
}
}
#[derive(Debug, Deserialize, Eq, PartialEq)]
pub(crate) struct EpisodeLinkFromImdb {
#[serde(rename = "tconst", deserialize_with = "crate::util::parse_imdb_id")]
pub imdb_id: u32,
#[serde(rename = "parentTconst", deserialize_with = "crate::util::parse_imdb_id")]
pub series_imdb_id: u32,
#[serde(rename = "seasonNumber", deserialize_with = "crate::util::parse_janky_tsv_option")]
pub season: Option<u16>,
#[serde(rename = "episodeNumber", deserialize_with = "crate::util::parse_janky_tsv_option_u32")]
pub episode: Option<u32>
}