Skip to main content

maolan_engine/
state.rs

1use crate::{mutex::UnsafeMutex, track::Track};
2use std::{collections::HashMap, sync::Arc};
3
4#[derive(Default, Debug)]
5pub struct State {
6    pub tracks: HashMap<String, Arc<UnsafeMutex<Box<Track>>>>,
7}
8
9#[cfg(test)]
10mod tests {
11    use super::*;
12
13    #[test]
14    fn state_default_creates_empty() {
15        let state = State::default();
16        assert!(state.tracks.is_empty());
17    }
18
19    #[test]
20    fn state_debug_format() {
21        let state = State::default();
22        let debug_str = format!("{:?}", state);
23        assert!(debug_str.contains("State"));
24        assert!(debug_str.contains("tracks"));
25    }
26
27    #[test]
28    fn state_new_is_default() {
29        let state1 = State::default();
30        let state2 = State {
31            tracks: HashMap::new(),
32        };
33        assert_eq!(state1.tracks.len(), state2.tracks.len());
34    }
35}