rsiot/components/cmp_leptos/
global_state.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
use leptos::prelude::*;

use crate::{executor::Cache, message::*};

/// Структура глобального состояния
#[derive(Clone)]
pub struct GlobalState<TMsg>
where
    TMsg: MsgDataBound + 'static,
{
    /// hostname
    pub hostname: String,

    /// Сигнал для входных сообщений
    pub input: RwSignal<Option<Message<TMsg>>>,

    /// Сигнал для выходных сообщений
    pub output: RwSignal<Option<Message<TMsg>>>,

    /// Кеш сообщений
    pub cache: Cache<TMsg>,

    /// Разрешения
    pub auth_perm: RwSignal<AuthPermissions>,
}