reactive_graph_tooling/tooling/update/
release.rs1use 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}