dapi_grpc/
deserialization.rs1pub use tenderdash_proto::serializers::bytes::{
2 base64string, hexstring, option_base64string, vec_base64string,
3};
4
5pub mod from_to_string {
7 use std::{fmt::Display, str::FromStr};
8
9 use serde::{Deserialize, Serializer};
10
11 pub fn deserialize<'de, D, T>(deserializer: D) -> Result<T, D::Error>
12 where
13 D: serde::de::Deserializer<'de>,
14 T: FromStr,
15 T::Err: Display,
16 {
17 use serde::de::Error;
18
19 String::deserialize(deserializer).and_then(|string| {
20 string
21 .parse::<T>()
22 .map_err(|err| Error::custom(format!("custom dapi-grpc error: {}", err)))
23 })
24 }
25
26 pub fn serialize<S, T>(value: &T, serializer: S) -> Result<S::Ok, S::Error>
28 where
29 S: Serializer,
30 T: ToString,
31 {
32 serializer.serialize_str(&value.to_string())
33 }
34}