WorkerRouter

Struct WorkerRouter 

Source
pub struct WorkerRouter;
Expand description

Per-worker router accessor.

This provides zero-cost access to the router without Arc cloning.

Implementations§

Source§

impl WorkerRouter

Source

pub fn with<F, R>(f: F) -> R
where F: FnOnce(&Router) -> R,

Execute a closure with the worker’s router.

This is the primary way to access the router without cloning. The closure receives a reference to the router.

§Panics

Panics if called from a thread without an initialized worker router. Use try_with for a non-panicking version.

§Example
let response = WorkerRouter::with(|router| {
    router.route(request).await
});
Source

pub fn try_with<F, R>(f: F) -> Option<R>
where F: FnOnce(&Router) -> R,

Try to execute a closure with the worker’s router.

Returns None if no worker router is initialized.

Source

pub fn clone_arc() -> Option<Arc<Router>>

Get a clone of the worker’s router (fallback for async contexts).

Use this when you need to move the router into an async block. This still clones the Arc, but only once per request instead of multiple times in nested closures.

Source

pub fn clone_arc_or_panic() -> Arc<Router>

Get a clone of the worker’s router, or panic if not initialized.

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> 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> Injectable for T
where T: Send + Sync + 'static,

Source§

fn type_id_of() -> TypeId
where Self: Sized,

Returns the TypeId of this type (for internal use)
Source§

fn type_name_of() -> &'static str
where Self: Sized,

Returns the type name for debugging
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<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

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> Provider for T
where T: Injectable,