animato_devtools/
state.rs1#[derive(Clone, Debug, Default)]
5pub struct DevToolsState {
6 #[cfg(feature = "inspector")]
8 pub inspector: crate::TimelineInspector,
9 #[cfg(feature = "easing-editor")]
11 pub easing_editor: crate::EasingCurveEditor,
12 #[cfg(feature = "spring-viz")]
14 pub spring_visualizer: crate::SpringVisualizer,
15 #[cfg(feature = "recorder")]
17 pub recorder: crate::RecorderControls,
18 #[cfg(feature = "perf-monitor")]
20 pub performance: crate::PerformanceMonitor,
21 open: bool,
22}
23
24impl DevToolsState {
25 pub fn new() -> Self {
27 Self {
28 open: true,
29 ..Self::default()
30 }
31 }
32
33 pub fn is_open(&self) -> bool {
35 self.open
36 }
37
38 pub fn set_open(&mut self, open: bool) {
40 self.open = open;
41 }
42
43 pub fn toggle(&mut self) {
45 self.open = !self.open;
46 }
47}
48
49#[cfg(test)]
50mod tests {
51 use super::*;
52
53 #[test]
54 fn toggles_visibility() {
55 let mut state = DevToolsState::new();
56 assert!(state.is_open());
57 state.toggle();
58 assert!(!state.is_open());
59 }
60}