1 use crate::workspace_path; 2 use anyhow::Result; 3 use semver::Version; 4 use serde_derive::Deserialize; 5 use std::fs; 6 get() -> Result<Version>7pub fn get() -> Result<Version> { 8 let syn_cargo_toml = workspace_path::get("Cargo.toml"); 9 let manifest = fs::read_to_string(syn_cargo_toml)?; 10 let parsed: Manifest = toml::from_str(&manifest)?; 11 Ok(parsed.package.version) 12 } 13 14 #[derive(Debug, Deserialize)] 15 struct Manifest { 16 package: Package, 17 } 18 19 #[derive(Debug, Deserialize)] 20 struct Package { 21 version: Version, 22 } 23