use serde::{Deserialize, Serialize};
use std::borrow::Cow;
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
pub struct VersionsResponse<'a> {
pub stable: ChannelVersion<'a>,
pub beta: ChannelVersion<'a>,
pub nightly: ChannelVersion<'a>,
}
impl<'a> super::Response for VersionsResponse<'a> {}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
pub struct ChannelVersion<'a> {
pub rustc: Version<'a>,
pub rustfmt: Version<'a>,
pub clippy: Version<'a>,
#[serde(skip_serializing_if = "Option::is_none")]
pub miri: Option<Version<'a>>,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
pub struct Version<'a> {
pub version: Cow<'a, str>,
pub hash: Cow<'a, str>,
pub date: Cow<'a, str>,
}