diff options
| -rw-r--r-- | Cargo.lock | 9 | ||||
| -rw-r--r-- | mullvad-version/Cargo.toml | 3 | ||||
| -rw-r--r-- | mullvad-version/src/lib.rs | 23 | ||||
| -rw-r--r-- | test/Cargo.lock | 8 |
4 files changed, 39 insertions, 4 deletions
diff --git a/Cargo.lock b/Cargo.lock index 3e0c42ae83..4afca015ea 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2698,7 +2698,8 @@ dependencies = [ name = "mullvad-version" version = "0.0.0" dependencies = [ - "regex", + "regex-lite", + "serde", ] [[package]] @@ -3801,6 +3802,12 @@ dependencies = [ ] [[package]] +name = "regex-lite" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53a49587ad06b26609c52e423de037e7f57f20d53535d66e08c695f347df952a" + +[[package]] name = "regex-syntax" version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" diff --git a/mullvad-version/Cargo.toml b/mullvad-version/Cargo.toml index f4586f6569..e7a75f93bc 100644 --- a/mullvad-version/Cargo.toml +++ b/mullvad-version/Cargo.toml @@ -17,4 +17,5 @@ workspace = true [dependencies] -regex = "1.6.0" +regex-lite = "0.1" +serde = { workspace = true, optional = true } diff --git a/mullvad-version/src/lib.rs b/mullvad-version/src/lib.rs index 75baa97c11..180e12d96c 100644 --- a/mullvad-version/src/lib.rs +++ b/mullvad-version/src/lib.rs @@ -3,7 +3,7 @@ use std::fmt::Display; use std::str::FromStr; use std::sync::LazyLock; -use regex::Regex; +use regex_lite::Regex; /// The Mullvad VPN app product version pub const VERSION: &str = include_str!(concat!(env!("OUT_DIR"), "/product-version.txt")); @@ -160,6 +160,27 @@ impl FromStr for Version { } } +#[cfg(feature = "serde")] +impl<'de> serde::Deserialize<'de> for Version { + fn deserialize<D>(deserializer: D) -> Result<Self, D::Error> + where + D: serde::Deserializer<'de>, + { + let s = String::deserialize(deserializer)?; + FromStr::from_str(&s).map_err(serde::de::Error::custom) + } +} + +#[cfg(feature = "serde")] +impl serde::Serialize for Version { + fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error> + where + S: serde::Serializer, + { + serializer.serialize_str(&self.to_string()) + } +} + #[cfg(test)] mod tests { use super::*; diff --git a/test/Cargo.lock b/test/Cargo.lock index c639022fa8..897e6c9645 100644 --- a/test/Cargo.lock +++ b/test/Cargo.lock @@ -2141,7 +2141,7 @@ dependencies = [ name = "mullvad-version" version = "0.0.0" dependencies = [ - "regex", + "regex-lite", ] [[package]] @@ -2854,6 +2854,12 @@ dependencies = [ ] [[package]] +name = "regex-lite" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53a49587ad06b26609c52e423de037e7f57f20d53535d66e08c695f347df952a" + +[[package]] name = "regex-syntax" version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" |
