Skip to main content

Router

Struct Router 

Source
pub struct Router { /* private fields */ }
Expand description

Radix trie router.

Implementations§

Source§

impl Router

Source

pub fn new() -> Self

Create an empty router.

Source

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
Source

pub fn lookup<'a>(&'a self, path: &'a str, method: Method) -> RouteLookup<'a>

Match a path and method with 404/405 distinction.

Source

pub fn match_path<'a>( &'a self, path: &'a str, method: Method, ) -> Option<RouteMatch<'a>>

Match a path and method.

Source

pub fn routes(&self) -> &[Route]

Get all routes.

Source

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.

Source

pub fn nest(self, prefix: &str, child: Router) -> Self

Mount a child router at a path prefix (builder pattern).

Same as mount but panics on conflict. Use for static route definitions.

§Panics

Panics if any mounted route conflicts with existing routes.

Trait Implementations§

Source§

impl Default for Router

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

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> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, _span: NoopSpan) -> Self

Instruments this future with a span (no-op when disabled).
Source§

fn in_current_span(self) -> Self

Instruments this future with the current span (no-op when disabled).
Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> ResponseProduces<T> for T