reactive_graph_tooling/tooling/update/
release.rs

1use serde::Serialize;
2use tabled::Tabled;
3
4#[derive(Clone, Debug, Serialize, Tabled)]
5pub struct Release {
6    #[tabled(rename = "Release Name")]
7    pub name: String,
8    #[tabled(rename = "Version")]
9    pub version: String,
10    #[tabled(rename = "Date")]
11    pub date: String,
12    #[tabled(rename = "Asset Name")]
13    pub asset_name: String,
14    #[tabled(rename = "Download URL")]
15    pub download_url: String,
16}
17
18impl From<&self_update::update::Release> for Release {
19    fn from(release: &self_update::update::Release) -> Self {
20        let (asset_name, download_url) = match release.asset_for(env!("VERGEN_CARGO_TARGET_TRIPLE"), None) {
21            Some(release_asset) => (release_asset.name, release_asset.download_url),
22            None => ("Not available".to_string(), String::new()),
23        };
24        Release {
25            name: release.name.clone(),
26            version: release.version.clone(),
27            date: release.date[0..10].to_string(),
28            asset_name,
29            download_url,
30        }
31    }
32}