Path((DeserializeFromStr(start), DeserializeFromStr(end))): Path<( DeserializeFromStr, DeserializeFromStr, )>, ) -> ServerResult> { 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>) -> ServerResult { Ok(RareTxt(index.rare_sat_satpoints()?)) } async fn rune( Extension(page_config): Extension>, Extension(index): Extension>, Path(DeserializeFromStr(rune)): Path>, ) -> ServerResult> { 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(),