pub struct DMSCRouter { /* private fields */ }Expand description
Router for managing API routes and matching requests to handlers.
This struct maintains a collection of routes and provides methods for adding routes, matching requests to handlers, and mounting routers with prefixes.
Implementations§
Source§impl DMSCRouter
impl DMSCRouter
Source§impl DMSCRouter
impl DMSCRouter
Sourcepub fn get(&self, path: &str, handler: DMSCRouteHandler)
pub fn get(&self, path: &str, handler: DMSCRouteHandler)
Adds a GET route to the router.
§Parameters
path: Path pattern for the routehandler: Request handler for the route
Sourcepub fn post(&self, path: &str, handler: DMSCRouteHandler)
pub fn post(&self, path: &str, handler: DMSCRouteHandler)
Adds a POST route to the router.
§Parameters
path: Path pattern for the routehandler: Request handler for the route
Sourcepub fn put(&self, path: &str, handler: DMSCRouteHandler)
pub fn put(&self, path: &str, handler: DMSCRouteHandler)
Adds a PUT route to the router.
§Parameters
path: Path pattern for the routehandler: Request handler for the route
Sourcepub fn delete(&self, path: &str, handler: DMSCRouteHandler)
pub fn delete(&self, path: &str, handler: DMSCRouteHandler)
Adds a DELETE route to the router.
§Parameters
path: Path pattern for the routehandler: Request handler for the route
Sourcepub fn patch(&self, path: &str, handler: DMSCRouteHandler)
pub fn patch(&self, path: &str, handler: DMSCRouteHandler)
Adds a PATCH route to the router.
§Parameters
path: Path pattern for the routehandler: Request handler for the route
Sourcepub fn options(&self, path: &str, handler: DMSCRouteHandler)
pub fn options(&self, path: &str, handler: DMSCRouteHandler)
Adds an OPTIONS route to the router.
§Parameters
path: Path pattern for the routehandler: Request handler for the route
Sourcepub async fn route(
&self,
request: &DMSCGatewayRequest,
) -> DMSCResult<DMSCRouteHandler>
pub async fn route( &self, request: &DMSCGatewayRequest, ) -> DMSCResult<DMSCRouteHandler>
Finds a matching route for the given request.
This method checks the route cache first, then searches through registered routes to find a match. It returns the handler for the matching route, or an error if no route is found.
§Parameters
request: The gateway request to find a route for
§Returns
A DMSCResult<DMSCRouteHandler> with the matching handler, or an error if no route is found
Sourcepub fn mount(&self, prefix: &str, router: &DMSCRouter)
pub fn mount(&self, prefix: &str, router: &DMSCRouter)
Mounts another router’s routes with a prefix.
This method adds all routes from another router to this router, prepending the specified prefix to each route’s path.
§Parameters
prefix: The prefix to prepend to all mounted routesrouter: The router to mount
Sourcepub fn clear_routes(&self)
pub fn clear_routes(&self)
Clears all routes from the router.
This method removes all routes from the router and clears the route cache.
Sourcepub fn route_count(&self) -> usize
pub fn route_count(&self) -> usize
Gets the number of routes registered in the router.
§Returns
The number of routes registered in the router
Trait Implementations§
Source§impl Default for DMSCRouter
impl Default for DMSCRouter
Source§impl<'py> IntoPyObject<'py> for DMSCRouter
impl<'py> IntoPyObject<'py> for DMSCRouter
Source§type Target = DMSCRouter
type Target = DMSCRouter
Source§type Output = Bound<'py, <DMSCRouter as IntoPyObject<'py>>::Target>
type Output = Bound<'py, <DMSCRouter as IntoPyObject<'py>>::Target>
Source§fn into_pyobject(
self,
py: Python<'py>,
) -> Result<<Self as IntoPyObject<'_>>::Output, <Self as IntoPyObject<'_>>::Error>
fn into_pyobject( self, py: Python<'py>, ) -> Result<<Self as IntoPyObject<'_>>::Output, <Self as IntoPyObject<'_>>::Error>
Source§impl PyClass for DMSCRouter
impl PyClass for DMSCRouter
Source§impl PyClassImpl for DMSCRouter
impl PyClassImpl for DMSCRouter
Source§const IS_BASETYPE: bool = false
const IS_BASETYPE: bool = false
Source§const IS_SUBCLASS: bool = false
const IS_SUBCLASS: bool = false
Source§const IS_MAPPING: bool = false
const IS_MAPPING: bool = false
Source§const IS_SEQUENCE: bool = false
const IS_SEQUENCE: bool = false
Source§const IS_IMMUTABLE_TYPE: bool = false
const IS_IMMUTABLE_TYPE: bool = false
Source§const RAW_DOC: &'static CStr = c"Router for managing API routes and matching requests to handlers.\n\nThis struct maintains a collection of routes and provides methods for adding routes,\nmatching requests to handlers, and mounting routers with prefixes.\x00"
const RAW_DOC: &'static CStr = c"Router for managing API routes and matching requests to handlers.\n\nThis struct maintains a collection of routes and provides methods for adding routes,\nmatching requests to handlers, and mounting routers with prefixes.\x00"
Source§const DOC: &'static CStr
const DOC: &'static CStr
text_signature if a constructor is defined. Read moreSource§type ThreadChecker = SendablePyClass<DMSCRouter>
type ThreadChecker = SendablePyClass<DMSCRouter>
Source§type PyClassMutability = <<PyAny as PyClassBaseType>::PyClassMutability as PyClassMutability>::MutableChild
type PyClassMutability = <<PyAny as PyClassBaseType>::PyClassMutability as PyClassMutability>::MutableChild
Source§type BaseNativeType = PyAny
type BaseNativeType = PyAny
PyAny by default, and when you declare
#[pyclass(extends=PyDict)], it’s PyDict.fn items_iter() -> PyClassItemsIter
fn lazy_type_object() -> &'static LazyTypeObject<Self>
fn dict_offset() -> Option<isize>
fn weaklist_offset() -> Option<isize>
Source§impl PyClassNewTextSignature for DMSCRouter
impl PyClassNewTextSignature for DMSCRouter
const TEXT_SIGNATURE: &'static str = "()"
Source§impl PyMethods<DMSCRouter> for PyClassImplCollector<DMSCRouter>
impl PyMethods<DMSCRouter> for PyClassImplCollector<DMSCRouter>
fn py_methods(self) -> &'static PyClassItems
Source§impl PyTypeInfo for DMSCRouter
impl PyTypeInfo for DMSCRouter
Source§fn type_object_raw(py: Python<'_>) -> *mut PyTypeObject
fn type_object_raw(py: Python<'_>) -> *mut PyTypeObject
§fn type_object(py: Python<'_>) -> Bound<'_, PyType>
fn type_object(py: Python<'_>) -> Bound<'_, PyType>
§fn is_type_of(object: &Bound<'_, PyAny>) -> bool
fn is_type_of(object: &Bound<'_, PyAny>) -> bool
object is an instance of this type or a subclass of this type.§fn is_exact_type_of(object: &Bound<'_, PyAny>) -> bool
fn is_exact_type_of(object: &Bound<'_, PyAny>) -> bool
object is an instance of this type.impl DerefToPyAny for DMSCRouter
impl ExtractPyClassWithClone for DMSCRouter
Auto Trait Implementations§
impl !Freeze for DMSCRouter
impl RefUnwindSafe for DMSCRouter
impl Send for DMSCRouter
impl Sync for DMSCRouter
impl Unpin for DMSCRouter
impl UnwindSafe for DMSCRouter
Blanket Implementations§
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<'py, T> IntoPyObjectExt<'py> for Twhere
T: IntoPyObject<'py>,
impl<'py, T> IntoPyObjectExt<'py> for Twhere
T: IntoPyObject<'py>,
§fn into_bound_py_any(self, py: Python<'py>) -> Result<Bound<'py, PyAny>, PyErr>
fn into_bound_py_any(self, py: Python<'py>) -> Result<Bound<'py, PyAny>, PyErr>
self into an owned Python object, dropping type information.§fn into_py_any(self, py: Python<'py>) -> Result<Py<PyAny>, PyErr>
fn into_py_any(self, py: Python<'py>) -> Result<Py<PyAny>, PyErr>
self into an owned Python object, dropping type information and unbinding it
from the 'py lifetime.§fn into_pyobject_or_pyerr(self, py: Python<'py>) -> Result<Self::Output, PyErr>
fn into_pyobject_or_pyerr(self, py: Python<'py>) -> Result<Self::Output, PyErr>
self into a Python object. Read moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::RequestSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> PyErrArguments for T
impl<T> PyErrArguments for T
§impl<T> PyTypeCheck for Twhere
T: PyTypeInfo,
impl<T> PyTypeCheck for Twhere
T: PyTypeInfo,
§const NAME: &'static str = T::NAME
const NAME: &'static str = T::NAME
§fn type_check(object: &Bound<'_, PyAny>) -> bool
fn type_check(object: &Bound<'_, PyAny>) -> bool
§fn classinfo_object(py: Python<'_>) -> Bound<'_, PyAny>
fn classinfo_object(py: Python<'_>) -> Bound<'_, PyAny>
isinstance and issubclass function. Read more