Use the real Version type from semver crate
diff --git a/codegen/Cargo.toml b/codegen/Cargo.toml
index 66c1a7e..1f0ff42 100644
--- a/codegen/Cargo.toml
+++ b/codegen/Cargo.toml
@@ -17,6 +17,7 @@
serde = { version = "1.0.88", features = ["derive"] }
serde_json = "1.0.38"
toml = "0.4.10"
+semver = { version = "0.9", features = ["serde"] }
[workspace]
# Prefer that `cargo clean` in syn's directory does not require a rebuild of
diff --git a/codegen/src/types.rs b/codegen/src/types.rs
index cf41b5a..074e50d 100644
--- a/codegen/src/types.rs
+++ b/codegen/src/types.rs
@@ -1,4 +1,5 @@
use indexmap::IndexMap;
+use semver::Version;
use serde::{Deserialize, Deserializer, Serialize};
use std::collections::{BTreeMap, BTreeSet};
@@ -6,7 +7,7 @@
#[derive(Debug, PartialEq, Serialize, Deserialize)]
pub struct Definitions {
/// The Syn version used to generate the introspection file.
- pub version: String,
+ pub version: Version,
pub types: Vec<Node>,
pub tokens: BTreeMap<String, String>,
}
diff --git a/codegen/src/version.rs b/codegen/src/version.rs
index c3536c1..fab7907 100644
--- a/codegen/src/version.rs
+++ b/codegen/src/version.rs
@@ -1,9 +1,10 @@
+use semver::Version;
use serde::Deserialize;
use std::fs;
use std::path::Path;
-pub fn get() -> String {
+pub fn get() -> Version {
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();
@@ -18,5 +19,5 @@
#[derive(Debug, Deserialize)]
struct Package {
- version: String,
+ version: Version,
}