#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
pub struct Release {
pub(crate) name: Option<String>,
pub(crate) tag: String,
pub(crate) prerelease: bool,
pub(crate) published_at: String,
pub(crate) body: Option<String>,
pub(crate) assets: Vec<Asset>,
}
impl Release {
pub fn name(&self) -> Option<&str> {
self.name.as_deref()
}
pub fn tag(&self) -> &str {
&self.tag
}
pub fn is_prerelease(&self) -> bool {
self.prerelease
}
pub fn published_at(&self) -> &str {
&self.published_at
}
pub fn body(&self) -> Option<&str> {
self.body.as_deref()
}
pub fn assets(&self) -> &[Asset] {
&self.assets
}
}
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
pub struct Asset {
pub(crate) name: String,
pub(crate) size: Option<u64>,
pub(crate) url: String,
}
impl Asset {
pub fn name(&self) -> &str {
&self.name
}
pub fn size(&self) -> Option<u64> {
self.size
}
pub fn url(&self) -> &str {
&self.url
}
}