Skip to main content

GlobalRouter

Struct GlobalRouter 

Source
pub struct GlobalRouter { /* private fields */ }
Expand description

Global router state accessible from any component

Implementations§

Source§

impl GlobalRouter

Source

pub fn new() -> Self

Create a new global router

Source

pub fn add_route(&mut self, route: Route)

Register a route

Source

pub fn push_named( &mut self, name: &str, params: &RouteParams, ) -> Option<RouteChangeEvent>

Navigate to a named route with parameters

Source

pub fn url_for(&self, name: &str, params: &RouteParams) -> Option<String>

Generate URL for a named route

Source

pub fn push(&mut self, path: String) -> RouteChangeEvent

Navigate to a path

Source

pub fn replace(&mut self, path: String) -> RouteChangeEvent

Replace current path

Source

pub fn back(&mut self) -> Option<RouteChangeEvent>

Go back

Source

pub fn forward(&mut self) -> Option<RouteChangeEvent>

Go forward

Source

pub fn current_path(&self) -> &str

Get current path

Source

pub fn current_match(&mut self) -> Option<RouteMatch>

Get current route match (with caching, requires mutable)

Source

pub fn current_match_immutable(&self) -> Option<RouteMatch>

Get current route match (immutable, no caching)

Use this from Render implementations and other immutable contexts

Source

pub fn current_route(&self) -> Option<&Arc<Route>>

Get the current matched Route

Returns the shared Arc<Route> that matched the current path. Useful for accessing the route’s children and builder without cloning.

Source

pub fn can_go_back(&self) -> bool

Check if can go back

Source

pub fn can_go_forward(&self) -> bool

Check if can go forward

Source

pub fn state_mut(&mut self) -> &mut RouterState

Get mutable state reference

Source

pub fn state(&self) -> &RouterState

Get state reference

Source

pub fn nested_cache_mut(&mut self) -> &mut RouteCache

Available on crate feature cache only.

Get nested route cache (mutable)

Source

pub fn cache_stats(&self) -> &CacheStats

Available on crate feature cache only.

Get nested route cache statistics

Source

pub fn set_next_transition(&mut self, transition: Transition)

Available on crate feature transition only.

Set transition for the next navigation

This override will be used for the next push/replace operation, then automatically cleared.

§Example
use gpui_navigator::{GlobalRouter, Transition};

cx.update_global::<GlobalRouter, _>(|router, _| {
    router.set_next_transition(Transition::fade(300));
    router.push("/page".to_string());
});
Source

pub fn take_next_transition(&mut self) -> Option<Transition>

Available on crate feature transition only.

Get and consume the next transition override

Returns the transition override if set, and clears it. Used internally by navigation methods.

Source

pub fn has_next_transition(&self) -> bool

Available on crate feature transition only.

Check if there’s a transition override set

Source

pub fn clear_next_transition(&mut self)

Available on crate feature transition only.

Clear transition override without consuming it

Source

pub fn push_with_transition( &mut self, path: String, transition: Transition, ) -> RouteChangeEvent

Available on crate feature transition only.

Navigate with a specific transition

Convenience method that sets the transition and navigates in one call.

§Example
use gpui_navigator::{GlobalRouter, Transition};

cx.update_global::<GlobalRouter, _>(|router, _| {
    router.push_with_transition("/page".to_string(), Transition::slide_left(300));
});
Source

pub fn replace_with_transition( &mut self, path: String, transition: Transition, ) -> RouteChangeEvent

Available on crate feature transition only.

Replace with a specific transition

Trait Implementations§

Source§

impl Clone for GlobalRouter

Source§

fn clone(&self) -> GlobalRouter

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Default for GlobalRouter

Source§

fn default() -> Self

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

impl Global for GlobalRouter

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> Downcast for T
where T: Any,

Source§

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

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
Source§

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

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
Source§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
Source§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
Source§

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

Source§

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

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
Source§

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

Source§

fn __clone_box(&self, _: Private) -> *mut ()

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> 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> NoneValue for T
where T: Default,

Source§

type NoneType = T

Source§

fn null_value() -> T

The none-equivalent value.
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> ReadGlobal for T
where T: Global,

Source§

fn global(cx: &App) -> &T

Returns the global instance of the implementing type. 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<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 = 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<T> UpdateGlobal for T
where T: Global,

Source§

fn update_global<C, F, R>(cx: &mut C, update: F) -> R
where C: BorrowAppContext, F: FnOnce(&mut T, &mut C) -> R,

Updates the global instance of the implementing type using the provided closure. Read more
Source§

fn set_global<C>(cx: &mut C, global: T)

Set the global instance of the implementing type.
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