pub struct Callback<IN, OUT = ()> { /* private fields */ }Expand description
Universal callback wrapper inspired by Yew’s Callback system.
This provides a type-safe way to pass function callbacks between components, similar to React’s event handlers and Yew’s callback system.
Implementations§
Source§impl<IN, OUT> Callback<IN, OUT>
impl<IN, OUT> Callback<IN, OUT>
Source§impl<IN, OUT> Callback<IN, OUT>where
IN: 'static,
impl<IN, OUT> Callback<IN, OUT>where
IN: 'static,
Sourcepub fn from_fn<F>(func: F) -> Self
pub fn from_fn<F>(func: F) -> Self
Create a callback from a closure with explicit type annotation This helps with type inference in complex scenarios
Sourcepub fn constant(value: OUT) -> Self
pub fn constant(value: OUT) -> Self
Create a callback that ignores its input and returns a constant value
Sourcepub fn then<F, NextOut>(self, next: F) -> Callback<IN, NextOut>
pub fn then<F, NextOut>(self, next: F) -> Callback<IN, NextOut>
Chain this callback with another callback The output of this callback becomes the input of the next
Sourcepub fn map<F, NewOut>(self, mapper: F) -> Callback<IN, NewOut>
pub fn map<F, NewOut>(self, mapper: F) -> Callback<IN, NewOut>
Map the output of this callback to a different type
Sourcepub fn filter<F>(self, predicate: F) -> Callback<IN, Option<OUT>>
pub fn filter<F>(self, predicate: F) -> Callback<IN, Option<OUT>>
Create a callback that calls this callback only if a condition is met
Sourcepub fn catch_unwind(self) -> Callback<IN, Result<OUT, String>>where
IN: 'static,
OUT: 'static,
pub fn catch_unwind(self) -> Callback<IN, Result<OUT, String>>where
IN: 'static,
OUT: 'static,
Create a callback that catches panics and returns a Result
Trait Implementations§
Source§impl<IN, OUT> From<Arc<dyn Fn(IN) -> OUT + Send + Sync>> for Callback<IN, OUT>
Convert from Arc<dyn Fn> for shared callbacks
impl<IN, OUT> From<Arc<dyn Fn(IN) -> OUT + Send + Sync>> for Callback<IN, OUT>
Convert from Arc<dyn Fn> for shared callbacks
Source§impl<IN> From<Option<Callback<IN>>> for Callback<IN>
Convert from Option<Callback> - None becomes a noop callback
impl<IN> From<Option<Callback<IN>>> for Callback<IN>
Convert from Option<Callback> - None becomes a noop callback
Source§impl<IN, OUT> IntoCallback<IN, OUT> for Callback<IN, OUT>
impl<IN, OUT> IntoCallback<IN, OUT> for Callback<IN, OUT>
fn into_callback(self) -> Callback<IN, OUT>
Auto Trait Implementations§
impl<IN, OUT = ()> !RefUnwindSafe for Callback<IN, OUT>
impl<IN, OUT = ()> !UnwindSafe for Callback<IN, OUT>
impl<IN, OUT> Freeze for Callback<IN, OUT>
impl<IN, OUT> Send for Callback<IN, OUT>
impl<IN, OUT> Sync for Callback<IN, OUT>
impl<IN, OUT> Unpin for Callback<IN, OUT>
impl<IN, OUT> UnsafeUnpin for Callback<IN, OUT>
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<F, IN, OUT> IntoCallbackProp<Callback<IN, OUT>> for Fwhere
F: IntoCallback<IN, OUT>,
impl<F, IN, OUT> IntoCallbackProp<Callback<IN, OUT>> for Fwhere
F: IntoCallback<IN, OUT>,
fn into_callback_prop(self) -> Callback<IN, OUT>
Source§impl<F, IN, OUT> IntoCallbackProp<Option<Callback<IN, OUT>>> for Fwhere
F: IntoCallback<IN, OUT>,
impl<F, IN, OUT> IntoCallbackProp<Option<Callback<IN, OUT>>> for Fwhere
F: IntoCallback<IN, OUT>,
fn into_callback_prop(self) -> Option<Callback<IN, OUT>>
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> ⓘ
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> ⓘ
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