)
} else {
(
StatusCode::OK,
StatusCode::OK.canonical_reason().unwrap_or_default(),
)
}
}
async fn search_by_query(
Extension(index): Extension<Arc<Index>>,
Query(search): Query<Search>,
) -> ServerResult<Redirect> {
Self::search(&index, &search.query).await
}
async fn search_by_path(
Extension(index): Extension<Arc<Index>>,
Path(search): Path<Search>,
) -> ServerResult<Redirect> {
Self::search(&index, &search.query).await
}
async fn search(index: &Index, query: &str) -> ServerResult<Redirect> {
Self::search_inner(index, query)
}
fn search_inner(index: &Index, query: &str) -> ServerResult<Redirect> {
lazy_static! {
static ref HASH: Regex = Regex::new(r"^[[:xdigit:]]{64}$").unwrap();
static ref INSCRIPTION_ID: Regex = Regex::new(r"^[[:xdigit:]]{64}i\d+$").unwrap();
static ref OUTPOINT: Regex = Regex::new(r"^[[:xdigit:]]{64}:\d+$").unwrap();
static ref RUNE: Regex = Regex::new(r"^[A-Z]+$").unwrap();