forked from
microcosm.blue/microcosm-rs
Constellation, Spacedust, Slingshot, UFOs: atproto crates and services for microcosm
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}