Constellation, Spacedust, Slingshot, UFOs: atproto crates and services for microcosm
at main 764 B view raw
1use links::{parse_any_link, Link}; 2use num_format::{Locale, ToFormattedString}; 3 4pub fn to_browseable(s: &str) -> askama::Result<Option<String>> { 5 Ok({ 6 if let Some(link) = parse_any_link(s) { 7 match link { 8 Link::AtUri(at_uri) => at_uri 9 .strip_prefix("at://") 10 .map(|noproto| format!("https://pdsls.dev/at://{noproto}")), 11 Link::Did(did) => Some(format!("https://pdsls.dev/at://{did}")), 12 Link::Uri(uri) => Some(uri), 13 } 14 } else { 15 None 16 } 17 }) 18} 19 20pub fn human_number(n: &u64) -> askama::Result<String> { 21 Ok(n.to_formatted_string(&Locale::en)) 22} 23 24pub fn to_u64(n: usize) -> askama::Result<u64> { 25 Ok(n as u64) 26}