blob: fab79079d7c3a19f0684fb2ca9d2b017f3d2d458 [file] [log] [blame]
David Tolnay822790e2019-02-15 21:12:30 -08001use semver::Version;
David Tolnay10227122019-02-15 20:53:45 -08002use serde::Deserialize;
3
4use std::fs;
5use std::path::Path;
6
David Tolnay822790e2019-02-15 21:12:30 -08007pub fn get() -> Version {
David Tolnay10227122019-02-15 20:53:45 -08008 let codegen_root = Path::new(env!("CARGO_MANIFEST_DIR"));
9 let syn_cargo_toml = codegen_root.join("../Cargo.toml");
10 let manifest = fs::read_to_string(syn_cargo_toml).unwrap();
11 let parsed: Manifest = toml::from_str(&manifest).unwrap();
12 parsed.package.version
13}
14
15#[derive(Debug, Deserialize)]
16struct Manifest {
17 package: Package,
18}
19
20#[derive(Debug, Deserialize)]
21struct Package {
David Tolnay822790e2019-02-15 21:12:30 -080022 version: Version,
David Tolnay10227122019-02-15 20:53:45 -080023}