Parse version together with definitions
diff --git a/codegen/src/version.rs b/codegen/src/version.rs
new file mode 100644
index 0000000..c3536c1
--- /dev/null
+++ b/codegen/src/version.rs
@@ -0,0 +1,22 @@
+use serde::Deserialize;
+
+use std::fs;
+use std::path::Path;
+
+pub fn get() -> String {
+ let codegen_root = Path::new(env!("CARGO_MANIFEST_DIR"));
+ let syn_cargo_toml = codegen_root.join("../Cargo.toml");
+ let manifest = fs::read_to_string(syn_cargo_toml).unwrap();
+ let parsed: Manifest = toml::from_str(&manifest).unwrap();
+ parsed.package.version
+}
+
+#[derive(Debug, Deserialize)]
+struct Manifest {
+ package: Package,
+}
+
+#[derive(Debug, Deserialize)]
+struct Package {
+ version: String,
+}