Skip to main content

RouteMatcher

Struct RouteMatcher 

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

The core routing engine responsible for matching request paths to their corresponding handlers.

The matcher categorizes route into three types for optimized performance:

  1. static_route- For exact path matches, offering the fastest lookups.
  2. dynamic_route- For paths with variable segments.
  3. regex_route- For complex matching based on regular expressions.

When a request comes in, the matcher checks these categories in order to find the appropriate hook.

Implementations§

Source§

impl RouteMatcher

Manages a collection of route, enabling efficient lookup and dispatch.

This struct stores route categorized by type (static, dynamic, regex) to quickly find the appropriate hook for incoming requests.

Source

pub fn try_resolve_route( &self, ctx: &mut Context, path: &str, ) -> Option<ServerHookHandler>

Resolves and executes a route hook.

This method searches for a matching route and executes it if found. Finds a matching route hook for the given path.

§Arguments
  • &mut Context - The request context.
  • &str - The request path to resolve.
§Returns
  • Option<ServerHookHandler> - The matched route hook if found, None otherwise.
Source§

impl RouteMatcher

Source§

impl RouteMatcher

Trait Implementations§

Source§

impl Clone for RouteMatcher

Source§

fn clone(&self) -> RouteMatcher

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for RouteMatcher

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for RouteMatcher

Provides a default implementation for RouteMatcher.

Source§

fn default() -> Self

Creates a new, empty RouteMatcher.

§Returns
  • RouteMatcher - A new RouteMatcher with empty storage for static, dynamic, and regex route.
Source§

impl Display for RouteMatcher

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Eq for RouteMatcher

Implements the Eq trait for RouteMatcher.

This indicates that RouteMatcher has a total equality relation.

Source§

impl PartialEq for RouteMatcher

Implements the PartialEq trait for RouteMatcher.

This allows for comparing two RouteMatcher instances for equality.

Source§

fn eq(&self, other: &Self) -> bool

Checks if two RouteMatcher instances are equal.

§Arguments
  • &Self- The other RouteMatcher instance to compare against.
§Returns
  • bool- true if the instances are equal, false otherwise.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.

Auto Trait Implementations§

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> AnySend for T
where T: Any + Send,

Source§

impl<T> AnySendClone for T
where T: Any + Send + Clone,

Source§

impl<T> AnySendSync for T
where T: Any + Send + Sync,

Source§

impl<T> AnySendSyncClone for T
where T: Any + Send + Sync + Clone,

Source§

impl<T> AnySync for T
where T: Any + Sync,

Source§

impl<T> AnySyncClone for T
where T: Any + Sync + Clone,

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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
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<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V