From d2f423521ec76406944ad83098ec33afe20c692b Mon Sep 17 00:00:00 2001 From: Kim Altintop Date: Mon, 9 Jan 2023 13:18:33 +0100 Subject: This is it Squashed commit of all the exploration history. Development starts here. Signed-off-by: Kim Altintop --- src/serde.rs | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 src/serde.rs (limited to 'src/serde.rs') diff --git a/src/serde.rs b/src/serde.rs new file mode 100644 index 0000000..cbbf6a9 --- /dev/null +++ b/src/serde.rs @@ -0,0 +1,28 @@ +// Copyright © 2022 Kim Altintop +// SPDX-License-Identifier: GPL-2.0-only WITH openvpn-openssl-exception + +pub mod display { + use std::{ + fmt, + str::FromStr, + }; + + pub fn serialize(v: &T, serializer: S) -> Result + where + T: ToString, + S: serde::Serializer, + { + serializer.serialize_str(&v.to_string()) + } + + #[allow(unused)] + pub fn deserialize<'de, T, D>(deserializer: D) -> Result + where + T: FromStr, + T::Err: fmt::Display, + D: serde::Deserializer<'de>, + { + let s: &str = serde::Deserialize::deserialize(deserializer)?; + s.parse().map_err(serde::de::Error::custom) + } +} -- cgit v1.2.3