Skip to main content

DeferredDispatcher

Struct DeferredDispatcher 

Source
pub struct DeferredDispatcher<D> { /* private fields */ }
Expand description

A ConnectRPC dispatcher that can be initialized exactly once.

Tauri requires plugins that register URI schemes to be attached to the builder, but application services may depend on state created later in the app setup hook. Clone this dispatcher into the plugin’s service, then set the real dispatcher during setup.

Calls made before initialization are reported as unimplemented.

use connectrpc::{ConnectRpcService, Router};
use connectrpc_tauri::{DeferredDispatcher, serve};

let deferred = DeferredDispatcher::new();
fn plugin<R: tauri::Runtime>(
    deferred: DeferredDispatcher<Router>,
) -> tauri::plugin::TauriPlugin<R> {
    serve(ConnectRpcService::new(deferred))
}
let _service = ConnectRpcService::new(deferred.clone());
assert!(deferred.set(Router::new()).is_ok());

Implementations§

Source§

impl<D> DeferredDispatcher<D>

Source

pub fn new() -> Self

Creates an uninitialized dispatcher.

Source

pub fn set(&self, dispatcher: D) -> Result<(), D>

Sets the dispatcher used for all subsequent calls.

§Errors

Returns dispatcher unchanged if this instance was already initialized.

Source

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

Returns true when both handles refer to the same deferred dispatcher.

Trait Implementations§

Source§

impl<D> Clone for DeferredDispatcher<D>

Source§

fn clone(&self) -> Self

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<D> Debug for DeferredDispatcher<D>

Source§

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

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

impl<D> Default for DeferredDispatcher<D>

Source§

fn default() -> Self

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

impl<D: Dispatcher> Dispatcher for DeferredDispatcher<D>

Source§

fn lookup(&self, path: &str) -> Option<MethodDescriptor>

Look up a method by its service_name/method_name path. Read more
Source§

fn call_unary( &self, path: &str, context: RequestContext, request: Payload, format: CodecFormat, ) -> UnaryResult

Dispatch a unary call. Read more
Source§

fn call_server_streaming( &self, path: &str, context: RequestContext, request: Bytes, format: CodecFormat, ) -> StreamingResult

Dispatch a server-streaming call. Read more
Source§

fn call_client_streaming( &self, path: &str, context: RequestContext, requests: RequestStream, format: CodecFormat, ) -> UnaryResult

Dispatch a client-streaming call. Read more
Source§

fn call_bidi_streaming( &self, path: &str, context: RequestContext, requests: RequestStream, format: CodecFormat, ) -> StreamingResult

Dispatch a bidi-streaming call. Read more

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> 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> 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> 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, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

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> UserEvent for T
where T: Debug + Clone + Send + 'static,

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