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