advent of atproto
at feature/UIChanges 17 lines 502 B view raw
1use atrium_api::types::Unknown; 2use serde::de; 3 4pub mod dns_resolver; 5pub mod stores; 6 7/// Safely parses an unknown record into a type. If it fails, it logs the error and returns an error. 8pub fn safe_check_unknown_record_parse<T>(unknown: Unknown) -> serde_json::Result<T> 9where 10 T: de::DeserializeOwned, 11{ 12 let json = serde_json::to_vec(&unknown).map_err(|err| { 13 log::error!("Error getting the bytes of a record: {}", err); 14 err 15 })?; 16 serde_json::from_slice::<T>(&json) 17}