rsiot/components/cmp_leptos/create_signal_from_msg/config.rs
1use crate::message::{Message, MsgDataBound};
2
3/// Конфигурация create_signal_from_msg
4pub struct Config<TMsg, TValue>
5where
6 TMsg: MsgDataBound + 'static,
7 TValue: Default,
8{
9 /// Значение по-умолчанию
10 ///
11 /// Пример:
12 /// ```rust
13 /// Message::Variant(MsgContent::default())
14 /// ```
15 pub default: Message<TMsg>,
16
17 /// Преобразование сообщения в сигнал чтения
18 ///
19 /// Пример:
20 /// ```rust
21 /// |msg| match msg {
22 /// Message::Variant(content) => Some(content.clone()),
23 /// _ => None,
24 /// }
25 /// ```
26 pub fn_input: fn(&Message<TMsg>) -> Option<TValue>,
27
28 /// Преоборазование сигнала записи в сообщение
29 ///
30 /// Если сигнал только для чтения:
31 /// ```rust
32 /// |_| None
33 /// ```
34 pub fn_output: fn(TValue) -> Option<Message<TMsg>>,
35}