pub struct Router { /* private fields */ }Expand description
Radix trie router.
Implementations§
Source§impl Router
impl Router
Sourcepub fn add(&mut self, route: Route) -> Result<(), RouteAddError>
pub fn add(&mut self, route: Route) -> Result<(), RouteAddError>
Add a route, returning an error if it conflicts with existing routes or the path pattern is invalid.
Conflict rules:
- Same HTTP method + structurally identical path patterns conflict
- Static segments take priority over parameter segments (no conflict)
- Parameter names/converters do not disambiguate conflicts (one param slot per segment)
{param:path}converters are only valid as the final segment
Sourcepub fn lookup<'a>(&'a self, path: &'a str, method: Method) -> RouteLookup<'a>
pub fn lookup<'a>(&'a self, path: &'a str, method: Method) -> RouteLookup<'a>
Match a path and method with 404/405 distinction.
Sourcepub fn match_path<'a>(
&'a self,
path: &'a str,
method: Method,
) -> Option<RouteMatch<'a>>
pub fn match_path<'a>( &'a self, path: &'a str, method: Method, ) -> Option<RouteMatch<'a>>
Match a path and method.
Sourcepub fn mount(self, prefix: &str, child: Router) -> Result<Self, RouteAddError>
pub fn mount(self, prefix: &str, child: Router) -> Result<Self, RouteAddError>
Mount a child router at a path prefix.
All routes from the child router will be accessible under the given prefix. This is useful for organizing routes into modules or API versions.
§Arguments
prefix- Path prefix for all child routes (e.g., “/api/v1”)child- The router to mount
§Example
ⓘ
use fastapi_router::Router;
use fastapi_core::Method;
let api = Router::new()
.route(get_users) // /users
.route(get_items); // /items
let app = Router::new()
.mount("/api/v1", api); // /api/v1/users, /api/v1/items§Errors
Returns an error if any mounted route conflicts with existing routes.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Router
impl !RefUnwindSafe for Router
impl Send for Router
impl Sync for Router
impl Unpin for Router
impl !UnwindSafe for Router
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, _span: NoopSpan) -> Self
fn instrument(self, _span: NoopSpan) -> Self
Instruments this future with a span (no-op when disabled).
Source§fn in_current_span(self) -> Self
fn in_current_span(self) -> Self
Instruments this future with the current span (no-op when disabled).