Skip to main content

ClientRouter

Struct ClientRouter 

Source
pub struct ClientRouter { /* private fields */ }
Available on crate feature client-router only.
Expand description

The main client-side router.

ClientRouter renders views using the Page type.

§Clone semantics

The Clone impl is shallow by design. Signal fields share their underlying reactive state across clones, and on WASM the navigation observer state (held behind Rc) is shared as well; only the route table (Vec<ClientRoute> / HashMap<String, usize>) is copied independently. As a result two clones see the same navigation state but can diverge if either is mutated to register new routes — this is not a deep clone of the router.

In practice Clone is only invoked by collect_client_router_from_inventory (Refs #4453) as the fallback path for Arc::try_unwrap when the underlying factory Arc is shared, and ClientLauncher::register_routes_from_inventory() is the only caller. Application code should NOT call .clone() directly to “branch” routers; treat the router as a single owned value moved into the launcher. Refs Copilot review on PR #4477.

Implementations§

Source§

impl ClientRouter

Source

pub fn new() -> ClientRouter

Available on crate feature test and native only.

Creates a new router.

Source

pub fn merge(self, other: ClientRouter) -> ClientRouter

Available on crate feature test and native only.

Combine another ClientRouter into this one.

Routes and named-route mappings from other are appended to self, preserving the order in which routes were originally registered. The reactive signals (current_path, current_params, current_route_name) and the not_found handler from other are discarded — self’s observation state is the one that drives the merged router.

§Named-route collisions

If both routers register the same named route, the entry from other overwrites the entry from self (last-wins). This matches the way UnifiedRouter::mount_unified already composes per-app routers, and keeps merge callable in chains where the caller does not want to handle errors. Use ClientRouter::try_merge for a fallible variant that surfaces collisions instead of silently shadowing them.

§Examples

Composing per-app SPA routers produced by #[url_patterns(InstalledApp::<app>, mode = client)] into the single ClientRouter that ClientLauncher::router_client expects:

let router = polls_client_url_patterns()
    .merge(users_client_url_patterns());
Source

pub fn try_merge(self, other: ClientRouter) -> Result<ClientRouter, MergeError>

Available on crate feature test and native only.

Like ClientRouter::merge, but fail if any named route collides.

Validates first, so on Err self is dropped without being mutated. On success the semantics are identical to merge (routes appended, other’s signals and not_found discarded).

§Errors

Returns MergeError::NameCollision carrying a colliding name when at least one named route is registered in both routers. When several names collide, the returned name is one of them; the choice is unspecified because named routes are stored in a HashMap.

§Examples
match polls_client_url_patterns().try_merge(users_client_url_patterns()) {
    Ok(router) => launcher.router_client(|| router),
    Err(MergeError::NameCollision { name }) => {
        panic!("two apps register the route `{name}`");
    }
}
Source

pub fn with_namespace(self, namespace: &str) -> ClientRouter

Available on crate feature test and native only.

Prefix all named route keys with "namespace:".

This is the client-side equivalent of ServerRouter::with_namespace(). Called by #[url_patterns(InstalledApp::<variant>, mode = client)] (or mode = unified) to ensure registered names match the "app:route" format used by per-app resolver structs.

Source

pub fn route<F>(self, pattern: &str, component: F) -> ClientRouter
where F: Fn() -> Page + Send + Sync + 'static,

Available on crate feature test and native only.

Adds a route to the router.

Source

pub fn named_route<F>( self, name: &str, pattern: &str, component: F, ) -> ClientRouter
where F: Fn() -> Page + Send + Sync + 'static,

Available on crate feature test and native only.

Adds a named route to the router.

Source

pub fn route_params<F, T>(self, pattern: &str, handler: F) -> ClientRouter
where F: Fn(Path<T>) -> Page + Send + Sync + 'static, T: FromPath + Send + Sync + 'static,

Available on crate feature test and native only.

Adds a route with typed path parameters.

Source

pub fn named_route_params<F, T>( self, name: &str, pattern: &str, handler: F, ) -> ClientRouter
where F: Fn(Path<T>) -> Page + Send + Sync + 'static, T: FromPath + Send + Sync + 'static,

Available on crate feature test and native only.

Adds a named route with typed path parameters.

Source

pub fn route_result<F, T, E>(self, pattern: &str, handler: F) -> ClientRouter
where F: Fn(Path<T>) -> Result<Page, E> + Send + Sync + 'static, T: FromPath + Send + Sync + 'static, E: Into<RouterError> + Send + Sync + 'static,

Available on crate feature test and native only.

Adds a route with typed path parameters that returns a Result.

Source

pub fn named_route_result<F, T, E>( self, name: &str, pattern: &str, handler: F, ) -> ClientRouter
where F: Fn(Path<T>) -> Result<Page, E> + Send + Sync + 'static, T: FromPath + Send + Sync + 'static, E: Into<RouterError> + Send + Sync + 'static,

Available on crate feature test and native only.

Adds a named route with typed path parameters that returns a Result.

Source

pub fn guarded_route<F, G>( self, pattern: &str, component: F, guard: G, ) -> ClientRouter
where F: Fn() -> Page + Send + Sync + 'static, G: Fn(&ClientRouteMatch) -> bool + Send + Sync + 'static,

Available on crate feature test and native only.

Adds a route with a guard.

Source

pub fn route_path<F, T>(self, pattern: &str, handler: F) -> ClientRouter
where F: Fn(Path<T>) -> Page + Send + Sync + 'static, T: SingleFromPath + Send + Sync + 'static,

Available on crate feature test and native only.

Adds a route with a single path parameter using Path<T> extractor.

§Example
let router = ClientRouter::new()
    .route_path("/users/{id}/", |Path(id): Path<i64>| {
        user_detail(id)
    });
Source

pub fn named_route_path<F, T>( self, name: &str, pattern: &str, handler: F, ) -> ClientRouter
where F: Fn(Path<T>) -> Page + Send + Sync + 'static, T: SingleFromPath + Send + Sync + 'static,

Available on crate feature test and native only.

Adds a named route with a single path parameter using Path<T> extractor.

Source

pub fn route_path2<F, T1, T2>(self, pattern: &str, handler: F) -> ClientRouter
where F: Fn(Path<T1>, Path<T2>) -> Page + Send + Sync + 'static, T1: SingleFromPath + Send + Sync + 'static, T2: SingleFromPath + Send + Sync + 'static,

Available on crate feature test and native only.

Adds a route with two path parameters using multiple Path<T> extractors.

§Example
let router = ClientRouter::new()
    .route_path2("/users/{user_id}/posts/{post_id}/",
        |Path(user_id): Path<i64>, Path(post_id): Path<i64>| {
            user_post_detail(user_id, post_id)
        });
Source

pub fn named_route_path2<F, T1, T2>( self, name: &str, pattern: &str, handler: F, ) -> ClientRouter
where F: Fn(Path<T1>, Path<T2>) -> Page + Send + Sync + 'static, T1: SingleFromPath + Send + Sync + 'static, T2: SingleFromPath + Send + Sync + 'static,

Available on crate feature test and native only.

Adds a named route with two path parameters.

Source

pub fn route_path3<F, T1, T2, T3>( self, pattern: &str, handler: F, ) -> ClientRouter
where F: Fn(Path<T1>, Path<T2>, Path<T3>) -> Page + Send + Sync + 'static, T1: SingleFromPath + Send + Sync + 'static, T2: SingleFromPath + Send + Sync + 'static, T3: SingleFromPath + Send + Sync + 'static,

Available on crate feature test and native only.

Adds a route with three path parameters using multiple Path<T> extractors.

§Example
let router = ClientRouter::new()
    .route_path3("/org/{org}/repos/{repo}/issues/{issue}/",
        |Path(org): Path<String>, Path(repo): Path<String>, Path(issue): Path<i32>| {
            issue_detail(org, repo, issue)
        });
Source

pub fn named_route_path3<F, T1, T2, T3>( self, name: &str, pattern: &str, handler: F, ) -> ClientRouter
where F: Fn(Path<T1>, Path<T2>, Path<T3>) -> Page + Send + Sync + 'static, T1: SingleFromPath + Send + Sync + 'static, T2: SingleFromPath + Send + Sync + 'static, T3: SingleFromPath + Send + Sync + 'static,

Available on crate feature test and native only.

Adds a named route with three path parameters.

Source

pub fn not_found<F>(self, component: F) -> ClientRouter
where F: Fn() -> Page + Send + Sync + 'static,

Available on crate feature test and native only.

Sets the not found handler.

Source

pub fn current_path(&self) -> &Signal<String>

Available on crate feature test and native only.

Returns the current path signal.

Source

pub fn current_params(&self) -> &Signal<HashMap<String, String>>

Available on crate feature test and native only.

Returns the current params signal.

Source

pub fn current_route_name(&self) -> &Signal<Option<String>>

Available on crate feature test and native only.

Returns the current route name signal.

Source

pub fn route_patterns(&self) -> impl Iterator<Item = (&str, Option<&str>)>

Available on crate feature test and native only.

Returns an iterator over registered route patterns and their optional names.

Each item is (pattern_str, name) where name is Some for named routes. Intended for diagnostic output (e.g., the runserver startup banner).

Source

pub fn match_path(&self, path: &str) -> Option<ClientRouteMatch>

Available on crate feature test and native only.

Matches a path against registered routes.

Source

pub fn push(&self, path: &str) -> Result<(), RouterError>

Available on crate feature test and native only.

Navigates to a path using pushState.

Source

pub fn replace(&self, path: &str) -> Result<(), RouterError>

Available on crate feature test and native only.

Navigates to a path using replaceState.

Source

pub fn on_navigate<F>(&self, listener: F) -> NavigationSubscription
where F: Fn(&str, &HashMap<String, String>) + 'static,

Available on crate feature test and native only.

Register a listener for navigation events.

Returns a NavigationSubscription handle. Drop the handle to deregister the listener. The router itself only retains a Weak reference, so dropping the subscription frees the listener closure immediately. The stale Weak entry in navigation_observers is pruned lazily on the next notify_observers call (the listener itself is already gone by then).

Robust against nested reactive nodes spawned during view rendering because this subscription is independent of the reactive Effect / Signal auto-tracking system.

Mirrors pages::Router::on_navigate. (Refs #4234)

On native targets (Fixes #4258) this is effectively a no-op: the returned NavigationSubscription is unbound to any observer storage because reactive observation only fires from the wasm popstate listener. The method is still callable on native so that the SpaRouter trait impl in reinhardt-pages (which dispatches into on_navigate from cross-target launcher code) keeps compiling.

Source

pub fn reverse( &self, name: &str, params: &[(&str, &str)], ) -> Result<String, RouterError>

Available on crate feature test and native only.

Generates a URL by route name with parameters.

Source

pub fn render_current(&self) -> Page

Available on crate feature test and native only.

Renders the current route’s component.

Returns the registered not_found page when no route matches, or a default 404 page if no not_found handler has been set.

Source

pub fn route_count(&self) -> usize

Available on crate feature test and native only.

Returns the number of registered routes.

Source

pub fn has_route(&self, name: &str) -> bool

Available on crate feature test and native only.

Checks if a route name exists.

Source

pub fn to_reverser(&self) -> ClientUrlReverser

Available on crate feature test and native only.

Extract a lightweight, thread-safe URL reverser.

The returned ClientUrlReverser contains only the named-route-to-pattern mapping and can be shared across threads (unlike ClientRouter itself which holds reactive signals).

Source

pub fn setup_history_listener(&self)

Available on crate feature test and native only.

Non-WASM version of setup_history_listener.

Trait Implementations§

Source§

impl Clone for ClientRouter

Source§

fn clone(&self) -> ClientRouter

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 Debug for ClientRouter

Source§

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

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

impl Default for ClientRouter

Source§

fn default() -> ClientRouter

Returns the “default value” for a type. 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> Any for T
where T: Any,

Source§

fn into_any(self: Box<T>) -> Box<dyn Any>

Source§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Source§

fn type_name(&self) -> &'static str

Source§

impl<T> AnySync for T
where T: Any + Send + Sync,

Source§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Source§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

Source§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

Source§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

Source§

fn implicit( self, class: Class, constructed: bool, tag: u32, ) -> TaggedParser<'a, Implicit, Self, E>

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> Conv for T

Source§

fn conv<T>(self) -> T
where Self: Into<T>,

Converts self into T using Into<T>. Read more
Source§

impl<T> FmtForward for T

Source§

fn fmt_binary(self) -> FmtBinary<Self>
where Self: Binary,

Causes self to use its Binary implementation when Debug-formatted.
Source§

fn fmt_display(self) -> FmtDisplay<Self>
where Self: Display,

Causes self to use its Display implementation when Debug-formatted.
Source§

fn fmt_lower_exp(self) -> FmtLowerExp<Self>
where Self: LowerExp,

Causes self to use its LowerExp implementation when Debug-formatted.
Source§

fn fmt_lower_hex(self) -> FmtLowerHex<Self>
where Self: LowerHex,

Causes self to use its LowerHex implementation when Debug-formatted.
Source§

fn fmt_octal(self) -> FmtOctal<Self>
where Self: Octal,

Causes self to use its Octal implementation when Debug-formatted.
Source§

fn fmt_pointer(self) -> FmtPointer<Self>
where Self: Pointer,

Causes self to use its Pointer implementation when Debug-formatted.
Source§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where Self: UpperExp,

Causes self to use its UpperExp implementation when Debug-formatted.
Source§

fn fmt_upper_hex(self) -> FmtUpperHex<Self>
where Self: UpperHex,

Causes self to use its UpperHex implementation when Debug-formatted.
Source§

fn fmt_list(self) -> FmtList<Self>
where &'a Self: for<'a> IntoIterator,

Formats each item in a sequence. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> FromRef<T> for T
where T: Clone,

Source§

fn from_ref(input: &T) -> T

Converts to this type from a reference to the input type.
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> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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
Source§

impl<T> IntoRequest<T> for T

Source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
Source§

impl<T> IntoResult<T> for T

Source§

impl<Unshared, Shared> IntoShared<Shared> for Unshared
where Shared: FromUnshared<Unshared>,

Source§

fn into_shared(self) -> Shared

Creates a shared type from an unshared type.
Source§

impl<L> LayerExt<L> for L

Source§

fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>
where L: Layer<S>,

Applies the layer to a service and wraps it in Layered.
Source§

impl<T> Pipe for T
where T: ?Sized,

Source§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where Self: Sized,

Pipes by value. This is generally the method you want to use. Read more
Source§

fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> R
where R: 'a,

Borrows self and passes that borrow into the pipe function. Read more
Source§

fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> R
where R: 'a,

Mutably borrows self and passes that borrow into the pipe function. Read more
Source§

fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
where Self: Borrow<B>, B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
Source§

fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
where Self: BorrowMut<B>, B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe function. Read more
Source§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where Self: AsRef<U>, U: 'a + ?Sized, R: 'a,

Borrows self, then passes self.as_ref() into the pipe function.
Source§

fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
where Self: AsMut<U>, U: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.as_mut() into the pipe function.
Source§

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
where Self: Deref<Target = T>, T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
Source§

fn pipe_deref_mut<'a, T, R>( &'a mut self, func: impl FnOnce(&'a mut T) -> R, ) -> R
where Self: DerefMut<Target = T> + Deref, T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe function.
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<R, P> ReadPrimitive<R> for P
where R: Read + ReadEndian<P>, P: Default,

Source§

fn read_from_little_endian(read: &mut R) -> Result<Self, Error>

Read this value from the supplied reader. Same as ReadEndian::read_from_little_endian().
Source§

fn read_from_big_endian(read: &mut R) -> Result<Self, Error>

Read this value from the supplied reader. Same as ReadEndian::read_from_big_endian().
Source§

fn read_from_native_endian(read: &mut R) -> Result<Self, Error>

Read this value from the supplied reader. Same as ReadEndian::read_from_native_endian().
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<E> ServerFnErrorAssertions<E> for E
where E: Debug,

Source§

fn should_contain_message(&self, expected: &str)
where E: Display,

Assert that the error message contains the specified text.
Source§

fn should_have_message(&self, expected: &str)
where E: Display,

Assert that the error message matches exactly.
Source§

impl<T> Tap for T

Source§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
Source§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
Source§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
Source§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
Source§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
Source§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
Source§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
Source§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Mutable access to the Deref::Target of a value. Read more
Source§

fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self

Calls .tap() only in debug builds, and is erased in release builds.
Source§

fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self

Calls .tap_mut() only in debug builds, and is erased in release builds.
Source§

fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Calls .tap_borrow() only in debug builds, and is erased in release builds.
Source§

fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Calls .tap_borrow_mut() only in debug builds, and is erased in release builds.
Source§

fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Calls .tap_ref() only in debug builds, and is erased in release builds.
Source§

fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Calls .tap_ref_mut() only in debug builds, and is erased in release builds.
Source§

fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release builds.
Source§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release builds.
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> TryConv for T

Source§

fn try_conv<T>(self) -> Result<T, Self::Error>
where Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
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<S, T> Upcast<T> for S
where T: UpcastFrom<S> + ?Sized, S: ?Sized,

Source§

fn upcast(&self) -> &T
where Self: ErasableGeneric, T: ErasableGeneric<Repr = Self::Repr>,

Perform a zero-cost type-safe upcast to a wider ref type within the Wasm bindgen generics type system. Read more
Source§

fn upcast_into(self) -> T
where Self: Sized + ErasableGeneric, T: ErasableGeneric<Repr = Self::Repr>,

Perform a zero-cost type-safe upcast to a wider type within the Wasm bindgen generics type system. Read more
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