use std::str::FromStr;
use serde::de::{self, Deserialize, Deserializer};
use shuttle_core::PublicKey;
pub fn from_str<'de, T, D>(deserializer: D) -> Result<T, D::Error>
where
T: FromStr,
D: Deserializer<'de>,
{
let s = String::deserialize(deserializer)?;
T::from_str(&s).map_err(|_| de::Error::custom("deserialize::from_str"))
}
pub fn account_id<'de, D>(deserializer: D) -> Result<PublicKey, D::Error>
where
D: Deserializer<'de>,
{
let s = String::deserialize(deserializer)?;
PublicKey::from_account_id(&s).map_err(|_| de::Error::custom("deserialize::account_id"))
}