freya_devtools_app/
state.rs

1use std::{
2    collections::{
3        HashMap,
4        HashSet,
5    },
6    sync::Arc,
7};
8
9use async_lock::Mutex;
10use async_tungstenite::WebSocketSender;
11use freya_core::integration::NodeId;
12use freya_devtools::NodeInfo;
13use freya_radio::hooks::RadioChannel;
14use smol::net::TcpStream;
15
16pub struct DevtoolsState {
17    pub(crate) nodes: HashMap<u64, Vec<NodeInfo>>,
18    pub(crate) expanded_nodes: HashSet<(u64, NodeId)>,
19    pub(crate) client: Arc<Mutex<Option<WebSocketSender<TcpStream>>>>,
20    pub(crate) animation_speed: f32,
21}
22
23#[derive(PartialEq, Eq, Clone, Debug, Hash)]
24pub enum DevtoolsChannel {
25    Global,
26    UpdatedTree,
27    Misc,
28}
29
30impl RadioChannel<DevtoolsState> for DevtoolsChannel {}