mirror of
https://git.proxmox.com/git/proxmox
synced 2025-05-21 16:10:47 +00:00
Uuid: implement Serlialize/Deserialize
This commit is contained in:
parent
c8e6462cc7
commit
a7390a3d0e
@ -140,3 +140,27 @@ pub mod string_as_base64 {
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
use crate::tools::uuid::Uuid;
|
||||
use ::serde::{Deserialize, Serialize, Serializer, Deserializer};
|
||||
|
||||
impl Serialize for Uuid {
|
||||
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
||||
where
|
||||
S: Serializer,
|
||||
{
|
||||
serializer.serialize_str(&format!("{}", self))
|
||||
}
|
||||
}
|
||||
|
||||
impl<'de> Deserialize<'de> for Uuid {
|
||||
fn deserialize<D>(deserializer: D) -> Result<Uuid, D::Error>
|
||||
where
|
||||
D: Deserializer<'de>,
|
||||
{
|
||||
use serde::de::Error;
|
||||
String::deserialize(deserializer).and_then(|string| {
|
||||
Uuid::parse_str(&string).map_err(|err| Error::custom(err.to_string()))
|
||||
})
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user