jupiter_swap_api_client/serde_helpers/
field_as_string.rs1use {
2 serde::{de, Deserializer, Serializer},
3 serde::{Deserialize, Serialize},
4 std::str::FromStr,
5};
6
7pub fn serialize<T, S>(t: &T, serializer: S) -> Result<S::Ok, S::Error>
8where
9 T: ToString,
10 S: Serializer,
11{
12 t.to_string().serialize(serializer)
13}
14
15pub fn deserialize<'de, T, D>(deserializer: D) -> Result<T, D::Error>
16where
17 T: FromStr,
18 D: Deserializer<'de>,
19 <T as FromStr>::Err: std::fmt::Debug,
20{
21 let s: String = String::deserialize(deserializer)?;
22 s.parse()
23 .map_err(|e| de::Error::custom(format!("Parse error: {:?}", e)))
24}