pub struct ContextWrapper<C>where
    C: Clone + PartialEq + 'static,
{ /* private fields */ }

Implementations§

Examples found in repository?
src/utils/context.rs (line 33)
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
    pub fn with<COMP, F>(ctx: &Context<COMP>, cb: F) -> Self
    where
        COMP: BaseComponent,
        F: Fn(C) -> COMP::Message + 'static,
    {
        let cb = ctx.link().callback(cb);
        Self::new(ctx.link().context(cb))
    }

    pub fn set(&mut self, context: C) -> bool {
        let context = Some(context);
        if self.context != context {
            self.context = context;
            true
        } else {
            false
        }
    }
}

impl<C, COMP, F> From<(&Context<COMP>, F)> for ContextWrapper<C>
where
    COMP: Component,
    F: Fn(C) -> COMP::Message + 'static,
    C: PartialEq + Clone,
{
    fn from((ctx, f): (&Context<COMP>, F)) -> Self {
        let link = ctx.link().clone();

        Self::new(link.clone().context(Callback::from(move |v| {
            link.send_message(f(v));
        })))
    }
Examples found in repository?
src/modal.rs (line 82)
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
    fn update(&mut self, ctx: &Context<Self>, msg: Self::Message) -> bool {
        match msg {
            Msg::Close => {
                if let Some(onclose) = &ctx.props().onclose {
                    onclose.emit(());
                } else if let Some(backdrop) = self.backdrop.deref() {
                    backdrop.close();
                }
            }
            Msg::SetBackdrop(backdrop) => {
                self.backdrop.set(backdrop);
            }
        }
        true
    }
More examples
Hide additional examples
src/about.rs (line 54)
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
    fn update(&mut self, ctx: &Context<Self>, msg: Self::Message) -> bool {
        match msg {
            Msg::Close => {
                if let Some(onclose) = &ctx.props().onclose {
                    onclose.emit(());
                } else {
                    if let Some(backdrop) = self.backdrop.deref() {
                        backdrop.close();
                    }
                }
            }
            Msg::SetBackdrop(backdropper) => {
                self.backdrop.set(backdropper);
            }
        }
        true
    }

Methods from Deref<Target = Option<C>>§

Returns true if the option is a Some value.

Examples
let x: Option<u32> = Some(2);
assert_eq!(x.is_some(), true);

let x: Option<u32> = None;
assert_eq!(x.is_some(), false);

Returns true if the option is a None value.

Examples
let x: Option<u32> = Some(2);
assert_eq!(x.is_none(), false);

let x: Option<u32> = None;
assert_eq!(x.is_none(), true);

Converts from &Option<T> to Option<&T>.

Examples

Converts an Option<String> into an Option<usize>, preserving the original. The map method takes the self argument by value, consuming the original, so this technique uses as_ref to first take an Option to a reference to the value inside the original.

let text: Option<String> = Some("Hello, world!".to_string());
// First, cast `Option<String>` to `Option<&String>` with `as_ref`,
// then consume *that* with `map`, leaving `text` on the stack.
let text_length: Option<usize> = text.as_ref().map(|s| s.len());
println!("still can print text: {text:?}");

Converts from Pin<&Option<T>> to Option<Pin<&T>>.

Converts from Pin<&mut Option<T>> to Option<Pin<&mut T>>.

Converts from Option<T> (or &Option<T>) to Option<&T::Target>.

Leaves the original Option in-place, creating a new one with a reference to the original one, additionally coercing the contents via Deref.

Examples
let x: Option<String> = Some("hey".to_owned());
assert_eq!(x.as_deref(), Some("hey"));

let x: Option<String> = None;
assert_eq!(x.as_deref(), None);

Returns an iterator over the possibly contained value.

Examples
let x = Some(4);
assert_eq!(x.iter().next(), Some(&4));

let x: Option<u32> = None;
assert_eq!(x.iter().next(), None);
🔬This is a nightly-only experimental API. (option_result_contains)

Returns true if the option is a Some value containing the given value.

Examples
#![feature(option_result_contains)]

let x: Option<u32> = Some(2);
assert_eq!(x.contains(&2), true);

let x: Option<u32> = Some(3);
assert_eq!(x.contains(&2), false);

let x: Option<u32> = None;
assert_eq!(x.contains(&2), false);

Trait Implementations§

The resulting type after dereferencing.
Dereferences the value.
Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Instruments this type with the current Span, returning an Instrumented wrapper. Read more

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Convert self to a value of a Properties struct.
Convert self to a value of a Properties struct.
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.
Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more