1use crate::workspace_path; 2use anyhow::Result; 3use semver::Version; 4use serde_derive::Deserialize; 5use std::fs; 6 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)] 15struct Manifest { 16 package: Package, 17} 18 19#[derive(Debug, Deserialize)] 20struct Package { 21 version: Version, 22} 23