Path((DeserializeFromStr(start), DeserializeFromStr(end))): Path<(
DeserializeFromStr<Sat>,
DeserializeFromStr<Sat>,
)>,
) -> ServerResult<PageHtml<RangeHtml>> {
match start.cmp(&end) {
Ordering::Equal => Err(ServerError::BadRequest("empty range".to_string())),
Ordering::Greater => Err(ServerError::BadRequest(
"range start greater than range end".to_string(),
)),
Ordering::Less => Ok(RangeHtml { start, end }.page(page_config)),
}
}
async fn rare_txt(Extension(index): Extension<Arc<Index>>) -> ServerResult<RareTxt> {
Ok(RareTxt(index.rare_sat_satpoints()?))
}
async fn rune(
Extension(page_config): Extension<Arc<PageConfig>>,
Extension(index): Extension<Arc<Index>>,
Path(DeserializeFromStr(rune)): Path<DeserializeFromStr<Rune>>,
) -> ServerResult<PageHtml<RuneHtml>> {
let (id, entry) = index.rune(rune)?.ok_or_else(|| {
ServerError::NotFound(
"tracking runes requires index created with `--index-runes-pre-alpha-i-agree-to-get-rekt` flag".into(),