rsiot/components/cmp_leptos/create_signal_from_msg/
config.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
use crate::message::{Message, MsgDataBound};

/// Конфигурация create_signal_from_msg
pub struct Config<TMsg, TValue>
where
    TMsg: MsgDataBound + 'static,
    TValue: Default,
{
    /// Значение по-умолчанию
    ///
    /// Пример:
    /// ```rust
    /// Message::Variant(MsgContent::default())
    /// ```
    pub default: Message<TMsg>,

    /// Преобразование сообщения в сигнал чтения
    ///
    /// Пример:
    /// ```rust
    /// |msg| match msg {
    ///     Message::Variant(content) => Some(content.clone()),
    /// _ => None,
    /// }
    /// ```
    pub fn_input: fn(&Message<TMsg>) -> Option<TValue>,

    /// Преоборазование сигнала записи в сообщение
    ///
    /// Если сигнал только для чтения:
    /// ```rust
    /// |_| None
    /// ```
    pub fn_output: fn(TValue) -> Option<Message<TMsg>>,
}