pub struct Router { /* private fields */ }Expand description
Used for merging nested trait implementations. This is used when you have multiple trait implementations,
instead of taurpc::create_ipc_handler(). Use .merge() to add trait implementations to the router.
The trait must be have the #[taurpc::procedures] and the nested routes should have #[taurpc::procedures(path = "path")].
§Examples
#[taurpc::procedures]
trait Api { }
#[derive(Clone)]
struct ApiImpl;
#[taurpc::resolveres]
impl Api for ApiImpl { }
#[taurpc::procedures(path = "events")]
trait Events { }
#[derive(Clone)]
struct EventsImpl;
#[taurpc::resolveres]
impl Events for EventsImpl { }
#[tokio::main]
async fn main() {
let router = Router::new()
.merge(ApiImpl.into_handler())
.merge(EventsImpl.into_handler());
tauri::Builder::default()
.invoke_handler(router.into_handler())
.run(tauri::generate_context!())
.expect("error while running tauri application");
}Implementations§
Source§impl Router
impl Router
pub fn new() -> Self
Sourcepub fn export_config(self, config: Typescript) -> Self
pub fn export_config(self, config: Typescript) -> Self
Overwrite specta default TypeScript export options, look at the docs for
specta_typescript::Typescript for all the configuration options.
Example:
let router = Router::new()
.export_config(
specta_typescript::Typescript::default()
.remove_default_header()
.header("// My header\n")
.bigint(specta_typescript::BigIntExportBehavior::String),
)
.merge(...);Sourcepub fn merge<H: TauRpcHandler<Wry>>(self, handler: H) -> Self
pub fn merge<H: TauRpcHandler<Wry>>(self, handler: H) -> Self
Add routes to the router, accepts a struct for which a #[taurpc::procedures] trait is implemented
let router = Router::new()
.merge(ApiImpl.into_handler())
.merge(EventsImpl.into_handler());Sourcepub fn into_handler(self) -> impl Fn(Invoke<Wry>) -> bool
pub fn into_handler(self) -> impl Fn(Invoke<Wry>) -> bool
Create a handler out of the router that allows your IPCs to be called from the frontend,
and generate the corresponding types. Use this inside .invoke_handler() on the tauri::Builder.
tauri::Builder::default()
.invoke_handler(router.into_handler())
.run(tauri::generate_context!())
.expect("error while running tauri application");Trait Implementations§
Auto Trait Implementations§
impl Freeze for Router
impl !RefUnwindSafe for Router
impl Send for Router
impl Sync for Router
impl Unpin for Router
impl !UnwindSafe for Router
Blanket Implementations§
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
Mutably borrows from an owned value. Read more
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>
Converts
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>
Converts
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