Struct freya::prelude::GlobalSignal
pub struct GlobalSignal<T> { /* private fields */ }
Expand description
A signal that can be accessed from anywhere in the application and created in a static
Implementations§
§impl<T> GlobalSignal<T>where
T: 'static,
impl<T> GlobalSignal<T>where T: 'static,
pub const fn new(initializer: fn() -> T) -> GlobalSignal<T>
pub const fn new(initializer: fn() -> T) -> GlobalSignal<T>
Create a new global signal with the given initializer.
pub fn origin_scope(&self) -> ScopeId
pub fn origin_scope(&self) -> ScopeId
Get the scope the signal was created in.
pub fn with_mut<O>(&self, f: impl FnOnce(&mut T) -> O) -> O
pub fn with_mut<O>(&self, f: impl FnOnce(&mut T) -> O) -> O
Run a closure with a mutable reference to the signal’s value. If the signal has been dropped, this will panic.
pub fn map<O>(
&self,
f: impl Fn(&T) -> &O + 'static
) -> MappedSignal<GenerationalRef<Ref<'static, O>>>
pub fn map<O>( &self, f: impl Fn(&T) -> &O + 'static ) -> MappedSignal<GenerationalRef<Ref<'static, O>>>
Map the signal to a new type.
pub fn id(&self) -> GenerationalBoxId
pub fn id(&self) -> GenerationalBoxId
Get the generational id of the signal.
Trait Implementations§
§impl<T> Debug for GlobalSignal<T>where
T: Debug + 'static,
impl<T> Debug for GlobalSignal<T>where T: Debug + 'static,
§impl<T> Deref for GlobalSignal<T>where
T: Clone + 'static,
impl<T> Deref for GlobalSignal<T>where T: Clone + 'static,
Allow calling a signal with signal() syntax
Currently only limited to copy types, though could probably specialize for string/arc/rc
§impl<T> Display for GlobalSignal<T>where
T: Display + 'static,
impl<T> Display for GlobalSignal<T>where T: Display + 'static,
§impl<T> IntoAttributeValue for GlobalSignal<T>where
T: 'static + Clone + IntoAttributeValue,
impl<T> IntoAttributeValue for GlobalSignal<T>where T: 'static + Clone + IntoAttributeValue,
§fn into_value(self) -> AttributeValue
fn into_value(self) -> AttributeValue
Convert into an attribute value
§impl<T> PartialEq<T> for GlobalSignal<T>where
T: PartialEq + 'static,
impl<T> PartialEq<T> for GlobalSignal<T>where T: PartialEq + 'static,
§impl<T> PartialEq for GlobalSignal<T>where
T: 'static,
impl<T> PartialEq for GlobalSignal<T>where T: 'static,
§fn eq(&self, other: &GlobalSignal<T>) -> bool
fn eq(&self, other: &GlobalSignal<T>) -> bool
This method tests for
self
and other
values to be equal, and is used
by ==
.§impl<T> Readable<T> for GlobalSignal<T>where
T: 'static,
impl<T> Readable<T> for GlobalSignal<T>where T: 'static,
§fn map_ref<I, U, F>(
ref_: <GlobalSignal<T> as Readable<T>>::Ref<I>,
f: F
) -> <GlobalSignal<T> as Readable<T>>::Ref<U>where
F: FnOnce(&I) -> &U,
U: ?Sized,
fn map_ref<I, U, F>( ref_: <GlobalSignal<T> as Readable<T>>::Ref<I>, f: F ) -> <GlobalSignal<T> as Readable<T>>::Ref<U>where F: FnOnce(&I) -> &U, U: ?Sized,
Map the reference to a new type.
§fn try_map_ref<I, U, F>(
ref_: <GlobalSignal<T> as Readable<T>>::Ref<I>,
f: F
) -> Option<<GlobalSignal<T> as Readable<T>>::Ref<U>>where
F: FnOnce(&I) -> Option<&U>,
U: ?Sized,
fn try_map_ref<I, U, F>( ref_: <GlobalSignal<T> as Readable<T>>::Ref<I>, f: F ) -> Option<<GlobalSignal<T> as Readable<T>>::Ref<U>>where F: FnOnce(&I) -> Option<&U>, U: ?Sized,
Try to map the reference to a new type.
§fn read(&self) -> <GlobalSignal<T> as Readable<T>>::Ref<T>
fn read(&self) -> <GlobalSignal<T> as Readable<T>>::Ref<T>
Get the current value of the state. If this is a signal, this will subscribe the current scope to the signal. If the value has been dropped, this will panic.
§fn peek(&self) -> <GlobalSignal<T> as Readable<T>>::Ref<T>
fn peek(&self) -> <GlobalSignal<T> as Readable<T>>::Ref<T>
Get the current value of the state without subscribing to updates. If the value has been dropped, this will panic.
§fn with<O>(&self, f: impl FnOnce(&T) -> O) -> O
fn with<O>(&self, f: impl FnOnce(&T) -> O) -> O
Run a function with a reference to the value. If the value has been dropped, this will panic.
§impl<T> Writable<T> for GlobalSignal<T>where
T: 'static,
impl<T> Writable<T> for GlobalSignal<T>where T: 'static,
§fn map_mut<I, U, F>(
ref_: <GlobalSignal<T> as Writable<T>>::Mut<I>,
f: F
) -> <GlobalSignal<T> as Writable<T>>::Mut<U>where
U: 'static + ?Sized,
F: FnOnce(&mut I) -> &mut U,
fn map_mut<I, U, F>( ref_: <GlobalSignal<T> as Writable<T>>::Mut<I>, f: F ) -> <GlobalSignal<T> as Writable<T>>::Mut<U>where U: 'static + ?Sized, F: FnOnce(&mut I) -> &mut U,
Map the reference to a new type.
§fn try_map_mut<I, U, F>(
ref_: <GlobalSignal<T> as Writable<T>>::Mut<I>,
f: F
) -> Option<<GlobalSignal<T> as Writable<T>>::Mut<U>>where
I: 'static,
U: 'static + ?Sized,
F: FnOnce(&mut I) -> Option<&mut U>,
fn try_map_mut<I, U, F>( ref_: <GlobalSignal<T> as Writable<T>>::Mut<I>, f: F ) -> Option<<GlobalSignal<T> as Writable<T>>::Mut<U>>where I: 'static, U: 'static + ?Sized, F: FnOnce(&mut I) -> Option<&mut U>,
Try to map the reference to a new type.
§fn try_write(
&self
) -> Result<<GlobalSignal<T> as Writable<T>>::Mut<T>, BorrowMutError>
fn try_write( &self ) -> Result<<GlobalSignal<T> as Writable<T>>::Mut<T>, BorrowMutError>
Try to get a mutable reference to the value. If the value has been dropped, this will panic.
§fn write(&self) -> Self::Mut<T>
fn write(&self) -> Self::Mut<T>
Get a mutable reference to the value. If the value has been dropped, this will panic.
§fn with_mut<O>(&self, f: impl FnOnce(&mut T) -> O) -> O
fn with_mut<O>(&self, f: impl FnOnce(&mut T) -> O) -> O
Run a function with a mutable reference to the value. If the value has been dropped, this will panic.
§fn set(&mut self, value: T)
fn set(&mut self, value: T)
Set the value of the signal. This will trigger an update on all subscribers.
Auto Trait Implementations§
impl<T> RefUnwindSafe for GlobalSignal<T>
impl<T> Send for GlobalSignal<T>
impl<T> Sync for GlobalSignal<T>
impl<T> Unpin for GlobalSignal<T>
impl<T> UnwindSafe for GlobalSignal<T>
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
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
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
.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
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
.§fn as_any(&self) -> &(dyn Any + 'static)
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.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
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.§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T, R> ReadableOptionExt<T> for Rwhere
T: 'static,
R: Readable<Option<T>>,
impl<T, R> ReadableOptionExt<T> for Rwhere T: 'static, R: Readable<Option<T>>,
§impl<T, R> ReadableVecExt<T> for Rwhere
T: 'static,
R: Readable<Vec<T>>,
impl<T, R> ReadableVecExt<T> for Rwhere T: 'static, R: Readable<Vec<T>>,
§impl<T, O> SuperFrom<T> for Owhere
O: From<T>,
impl<T, O> SuperFrom<T> for Owhere O: From<T>,
§fn super_from(input: T) -> O
fn super_from(input: T) -> O
Convert from a type to another type.
§impl<T, O, M> SuperInto<O, M> for Twhere
O: SuperFrom<T, M>,
impl<T, O, M> SuperInto<O, M> for Twhere O: SuperFrom<T, M>,
§fn super_into(self) -> O
fn super_into(self) -> O
Convert from a type to another type.
§impl<T> ToSmolStr for Twhere
T: Display + ?Sized,
impl<T> ToSmolStr for Twhere T: Display + ?Sized,
fn to_smolstr(&self) -> SmolStr
§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where S: Into<Dispatch>,
§fn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
§impl<T, W> WritableOptionExt<T> for Wwhere
T: 'static,
W: Writable<Option<T>>,
impl<T, W> WritableOptionExt<T> for Wwhere T: 'static, W: Writable<Option<T>>,
§fn get_or_insert(&self, default: T) -> Self::Mut<T>
fn get_or_insert(&self, default: T) -> Self::Mut<T>
Gets the value out of the Option, or inserts the given value if the Option is empty.
§fn get_or_insert_with(&self, default: impl FnOnce() -> T) -> Self::Mut<T>
fn get_or_insert_with(&self, default: impl FnOnce() -> T) -> Self::Mut<T>
Gets the value out of the Option, or inserts the value returned by the given function if the Option is empty.
§impl<T, W> WritableVecExt<T> for Wwhere
T: 'static,
W: Writable<Vec<T>>,
impl<T, W> WritableVecExt<T> for Wwhere T: 'static, W: Writable<Vec<T>>,
§fn extend(&mut self, iter: impl IntoIterator<Item = T>)
fn extend(&mut self, iter: impl IntoIterator<Item = T>)
Extends the vector with the given iterator.
§fn swap_remove(&mut self, index: usize) -> T
fn swap_remove(&mut self, index: usize) -> T
Swaps two values in the vector.
§fn retain(&mut self, f: impl FnMut(&T) -> bool)
fn retain(&mut self, f: impl FnMut(&T) -> bool)
Retains only the values that match the given predicate.