Struct ShowLetProps
pub struct ShowLetProps<T, ChFn, V, M, __ImplTrait0>where
__ImplTrait0: IntoOptionGetter<T, M>,
ChFn: Fn(T) -> V + Send + Clone + 'static,
V: IntoView + 'static,
T: 'static,{
pub children: ChFn,
pub some: __ImplTrait0,
pub fallback: ViewFn,
pub _marker: PhantomData<(T, M)>,
}Expand description
Props for the ShowLet component.
Like <Show> but for Option. This is a shortcut for
value.map(|value| {
view! { ... }
})If you specify a fallback it is equvalent to
value
.map(
|value| children(value),
)
.unwrap_or_else(fallback)§Example
let (opt_value, set_opt_value) = signal(None::<i32>);
view! {
<ShowLet some=opt_value let:value>
"We have a value: " {value}
</ShowLet>
}You can also specify a fallback:
let (opt_value, set_opt_value) = signal(None::<i32>);
view! {
<ShowLet some=opt_value let:value fallback=|| "Got nothing">
"We have a value: " {value}
</ShowLet>
}In addition to signals you can also use a closure that returns an Option:
let (opt_value, set_opt_value) = signal(None::<i32>);
view! {
<ShowLet some=move || opt_value.get().map(|v| v * 2) let:value>
"We have a value: " {value}
</ShowLet>
}§Required Props
- children: [
ChFn]-
The children will be shown whenever
valueisSome.They take the inner value as an argument. Use
let:to bind the value to a variable.
-
- some: [
__ImplTrait0]- A signal of type
Optionor a closure that returns anOption. If the value isSome, the children will be shown. Otherwise the fallback will be shown, if present.
- A signal of type
§Optional Props
- fallback:
impl Into<ViewFn>-
A closure that returns what gets rendered when the value is
None. By default this is the empty view.You can think of it as the closure inside
.unwrap_or_else(|| fallback()).
-
- _marker:
PhantomData<(T, M)>- Marker for generic parameters. Ignore this.
Fields§
§children: ChFnThe children will be shown whenever value is Some.
They take the inner value as an argument. Use let: to bind the value to a variable.
some: __ImplTrait0A signal of type Option or a closure that returns an Option.
If the value is Some, the children will be shown.
Otherwise the fallback will be shown, if present.
fallback: ViewFnA closure that returns what gets rendered when the value is None.
By default this is the empty view.
You can think of it as the closure inside .unwrap_or_else(|| fallback()).
_marker: PhantomData<(T, M)>Marker for generic parameters. Ignore this.
Implementations§
§impl<T, ChFn, V, M, __ImplTrait0> ShowLetProps<T, ChFn, V, M, __ImplTrait0>where
__ImplTrait0: IntoOptionGetter<T, M>,
ChFn: Fn(T) -> V + Send + Clone + 'static,
V: IntoView + 'static,
T: 'static,
impl<T, ChFn, V, M, __ImplTrait0> ShowLetProps<T, ChFn, V, M, __ImplTrait0>where
__ImplTrait0: IntoOptionGetter<T, M>,
ChFn: Fn(T) -> V + Send + Clone + 'static,
V: IntoView + 'static,
T: 'static,
pub fn builder() -> ShowLetPropsBuilder<T, ChFn, V, M, __ImplTrait0>
pub fn builder() -> ShowLetPropsBuilder<T, ChFn, V, M, __ImplTrait0>
Create a builder for building ShowLetProps.
On the builder, call .children(...), .some(...), .fallback(...)(optional), ._marker(...)(optional) to set the values of the fields.
Finally, call .build() to create the instance of ShowLetProps.
Trait Implementations§
§impl<T, ChFn, V, M, __ImplTrait0> Props for ShowLetProps<T, ChFn, V, M, __ImplTrait0>where
__ImplTrait0: IntoOptionGetter<T, M>,
ChFn: Fn(T) -> V + Send + Clone + 'static,
V: IntoView + 'static,
T: 'static,
impl<T, ChFn, V, M, __ImplTrait0> Props for ShowLetProps<T, ChFn, V, M, __ImplTrait0>where
__ImplTrait0: IntoOptionGetter<T, M>,
ChFn: Fn(T) -> V + Send + Clone + 'static,
V: IntoView + 'static,
T: 'static,
Auto Trait Implementations§
impl<T, ChFn, V, M, __ImplTrait0> Freeze for ShowLetProps<T, ChFn, V, M, __ImplTrait0>
impl<T, ChFn, V, M, __ImplTrait0> !RefUnwindSafe for ShowLetProps<T, ChFn, V, M, __ImplTrait0>
impl<T, ChFn, V, M, __ImplTrait0> Send for ShowLetProps<T, ChFn, V, M, __ImplTrait0>
impl<T, ChFn, V, M, __ImplTrait0> Sync for ShowLetProps<T, ChFn, V, M, __ImplTrait0>
impl<T, ChFn, V, M, __ImplTrait0> Unpin for ShowLetProps<T, ChFn, V, M, __ImplTrait0>
impl<T, ChFn, V, M, __ImplTrait0> !UnwindSafe for ShowLetProps<T, ChFn, V, M, __ImplTrait0>
Blanket Implementations§
Source§impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for Swhere
T: Real + Zero + Arithmetics + Clone,
Swp: WhitePoint<T>,
Dwp: WhitePoint<T>,
D: AdaptFrom<S, Swp, Dwp, T>,
impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for Swhere
T: Real + Zero + Arithmetics + Clone,
Swp: WhitePoint<T>,
Dwp: WhitePoint<T>,
D: AdaptFrom<S, Swp, Dwp, T>,
Source§fn adapt_into_using<M>(self, method: M) -> Dwhere
M: TransformMatrix<T>,
fn adapt_into_using<M>(self, method: M) -> Dwhere
M: TransformMatrix<T>,
Source§fn adapt_into(self) -> D
fn adapt_into(self) -> D
Source§impl<T, C> ArraysFrom<C> for Twhere
C: IntoArrays<T>,
impl<T, C> ArraysFrom<C> for Twhere
C: IntoArrays<T>,
Source§fn arrays_from(colors: C) -> T
fn arrays_from(colors: C) -> T
Source§impl<T, C> ArraysInto<C> for Twhere
C: FromArrays<T>,
impl<T, C> ArraysInto<C> for Twhere
C: FromArrays<T>,
Source§fn arrays_into(self) -> C
fn arrays_into(self) -> C
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<WpParam, T, U> Cam16IntoUnclamped<WpParam, T> for Uwhere
T: FromCam16Unclamped<WpParam, U>,
impl<WpParam, T, U> Cam16IntoUnclamped<WpParam, T> for Uwhere
T: FromCam16Unclamped<WpParam, U>,
Source§type Scalar = <T as FromCam16Unclamped<WpParam, U>>::Scalar
type Scalar = <T as FromCam16Unclamped<WpParam, U>>::Scalar
parameters when converting.Source§fn cam16_into_unclamped(
self,
parameters: BakedParameters<WpParam, <U as Cam16IntoUnclamped<WpParam, T>>::Scalar>,
) -> T
fn cam16_into_unclamped( self, parameters: BakedParameters<WpParam, <U as Cam16IntoUnclamped<WpParam, T>>::Scalar>, ) -> T
self into C, using the provided parameters.Source§impl<T, C> ComponentsFrom<C> for Twhere
C: IntoComponents<T>,
impl<T, C> ComponentsFrom<C> for Twhere
C: IntoComponents<T>,
Source§fn components_from(colors: C) -> T
fn components_from(colors: C) -> T
§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>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn 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>
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which 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)
&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)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.§impl<T> DowncastSend for T
impl<T> DowncastSend for T
§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<T> FromAngle<T> for T
impl<T> FromAngle<T> for T
Source§fn from_angle(angle: T) -> T
fn from_angle(angle: T) -> T
angle.Source§impl<T, U> FromStimulus<U> for Twhere
U: IntoStimulus<T>,
impl<T, U> FromStimulus<U> for Twhere
U: IntoStimulus<T>,
Source§fn from_stimulus(other: U) -> T
fn from_stimulus(other: U) -> T
other into Self, while performing the appropriate scaling,
rounding and clamping.§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§impl<T, U> IntoAngle<U> for Twhere
U: FromAngle<T>,
impl<T, U> IntoAngle<U> for Twhere
U: FromAngle<T>,
Source§fn into_angle(self) -> U
fn into_angle(self) -> U
T.Source§impl<WpParam, T, U> IntoCam16Unclamped<WpParam, T> for Uwhere
T: Cam16FromUnclamped<WpParam, U>,
impl<WpParam, T, U> IntoCam16Unclamped<WpParam, T> for Uwhere
T: Cam16FromUnclamped<WpParam, U>,
Source§type Scalar = <T as Cam16FromUnclamped<WpParam, U>>::Scalar
type Scalar = <T as Cam16FromUnclamped<WpParam, U>>::Scalar
parameters when converting.Source§fn into_cam16_unclamped(
self,
parameters: BakedParameters<WpParam, <U as IntoCam16Unclamped<WpParam, T>>::Scalar>,
) -> T
fn into_cam16_unclamped( self, parameters: BakedParameters<WpParam, <U as IntoCam16Unclamped<WpParam, T>>::Scalar>, ) -> T
self into C, using the provided parameters.Source§impl<T, U> IntoColor<U> for Twhere
U: FromColor<T>,
impl<T, U> IntoColor<U> for Twhere
U: FromColor<T>,
Source§fn into_color(self) -> U
fn into_color(self) -> U
Source§impl<T, U> IntoColorUnclamped<U> for Twhere
U: FromColorUnclamped<T>,
impl<T, U> IntoColorUnclamped<U> for Twhere
U: FromColorUnclamped<T>,
Source§fn into_color_unclamped(self) -> U
fn into_color_unclamped(self) -> U
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§impl<T, I> IntoReactiveValue<T, __IntoReactiveValueMarkerBaseCase> for Iwhere
I: Into<T>,
impl<T, I> IntoReactiveValue<T, __IntoReactiveValueMarkerBaseCase> for Iwhere
I: Into<T>,
§fn into_reactive_value(self) -> T
fn into_reactive_value(self) -> T
self into a T.Source§impl<T> IntoStimulus<T> for T
impl<T> IntoStimulus<T> for T
Source§fn into_stimulus(self) -> T
fn into_stimulus(self) -> T
self into T, while performing the appropriate scaling,
rounding and clamping.§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§impl<T> SerializableKey for T
impl<T> SerializableKey for T
§impl<T> StorageAccess<T> for T
impl<T> StorageAccess<T> for T
§fn as_borrowed(&self) -> &T
fn as_borrowed(&self) -> &T
§fn into_taken(self) -> T
fn into_taken(self) -> T
Source§impl<T, C> TryComponentsInto<C> for Twhere
C: TryFromComponents<T>,
impl<T, C> TryComponentsInto<C> for Twhere
C: TryFromComponents<T>,
Source§type Error = <C as TryFromComponents<T>>::Error
type Error = <C as TryFromComponents<T>>::Error
try_into_colors fails to cast.Source§fn try_components_into(self) -> Result<C, <T as TryComponentsInto<C>>::Error>
fn try_components_into(self) -> Result<C, <T as TryComponentsInto<C>>::Error>
Source§impl<T, U> TryIntoColor<U> for Twhere
U: TryFromColor<T>,
impl<T, U> TryIntoColor<U> for Twhere
U: TryFromColor<T>,
Source§fn try_into_color(self) -> Result<U, OutOfBounds<U>>
fn try_into_color(self) -> Result<U, OutOfBounds<U>>
OutOfBounds error is returned which contains
the unclamped color. Read more