turbo_trace_server/
u64_string.rs

1use std::{fmt::Display, str::FromStr};
2
3use serde::{Deserialize, Deserializer, Serializer, de};
4
5pub fn serialize<T, S>(value: &T, serializer: S) -> Result<S::Ok, S::Error>
6where
7    T: Display,
8    S: Serializer,
9{
10    serializer.collect_str(value)
11}
12
13pub fn deserialize<'de, T, D>(deserializer: D) -> Result<T, D::Error>
14where
15    T: FromStr,
16    T::Err: Display,
17    D: Deserializer<'de>,
18{
19    String::deserialize(deserializer)?
20        .parse()
21        .map_err(de::Error::custom)
22}