Analyzer::Rust::Axum
Inherits Analyzer::Rust::RustEngine < FileScanEngine < Analyzer < FileHelper < Reference < Object
Axum analyzer (tree-sitter port). Each .rs file is parsed once
with the vendored Rust grammar; route registrations are picked up
by walking call_expression nodes whose function is a
field_expression named route. Handler bodies are matched
against a same-file function_item index so callee extraction
shares the parsed tree instead of re-scanning the file with
regexes and a body-text wrapper.
Constants
Precompiled union for build_cross_nest_index's per-file evidence gate, so it costs a single PCRE2 match instead of three naive substring scans.
Precompiled per extractor type; interpolated regex literals here would be recompiled on every function parameter.
Verbs accepted as the inner handler call (get(...), post(...),
…). Anything outside this set is treated as GET to match the
legacy fallback the regex analyzer used. any covers
axum::routing::any(handler) — a verb-agnostic registration
commonly used for WebSocket upgrades and reverse-proxy fallbacks.
.nest("/p", router) and aide's .nest_api_service("/p", router)
both mount a sub-router under a path prefix.
Field-call names whose extracted shape extract_route knows
how to read. route_service, nest_service, and the two
fallback* variants surface in roughly half of all real-world
axum apps (static-file mounts, SPA fallbacks, websocket upgrades).
Method emitted for service-shaped registrations (route_service,
nest_service, fallback_service). Services aren't bound to a
specific HTTP method — tower-http::services::ServeDir accepts
whatever the client sends — so we mirror axum's any verb.
Precompiled union for build_utoipa_prefix_index's per-file evidence gate, so it costs a single PCRE2 match instead of two naive substring scans.
Class methods
Instance methods
Instance-side view of the same declaration. The per-file rescues live on
this base class, which has no way to name the analyzer that is running
inside them, so a skipped file could not be attributed to a tech.
Deriving it from analyzer_for keeps the name written exactly once.