freya_devtools_app/
state.rs1use 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 {}