Skip to main content

ClosureHandler

Struct ClosureHandler 

Source
pub struct ClosureHandler<B: Send + Sync + 'static> {
    pub backend: Arc<B>,
    pub call_fn: Box<BackendCallFn<B>>,
}
Expand description

A JmapHandler that wraps an async closure over a shared backend.

§CallerCtx limitation

The closure receives (args: Value, ctx: C) where C is the caller context (e.g. auth identity). However, the closures registered via [register_mail_handlers] / [register_chat_handlers] capture the backend via Arc and ignore ctx entirely — they do not forward the auth context to the handler.

If per-request auth context is needed, register handlers individually via Dispatcher::register with a closure that explicitly uses ctx. Adding CallerCtx forwarding to ClosureHandler itself would be a breaking API change, deferred to a future version.

Fields§

§backend: Arc<B>§call_fn: Box<BackendCallFn<B>>

Trait Implementations§

Source§

impl<B: Send + Sync + 'static, C: Clone + Send + 'static> JmapHandler<C> for ClosureHandler<B>

Source§

fn call( &self, _method: String, call_id: String, args: Value, _caller: C, ) -> HandlerFuture

method is the registered method name for this call. A single handler instance may be registered under multiple names (e.g. both "Foo/get" and "Bar/get"); this parameter lets the handler distinguish between them. Read more

Auto Trait Implementations§

§

impl<B> Freeze for ClosureHandler<B>

§

impl<B> !RefUnwindSafe for ClosureHandler<B>

§

impl<B> Send for ClosureHandler<B>

§

impl<B> Sync for ClosureHandler<B>

§

impl<B> Unpin for ClosureHandler<B>

§

impl<B> UnsafeUnpin for ClosureHandler<B>

§

impl<B> !UnwindSafe for ClosureHandler<B>

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, 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, 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.