thot_core/project/
container.rs

1//! Container.
2use super::asset::Asset;
3use super::script_association::RunParameters;
4use super::standard_properties::StandardProperties;
5use crate::types::{ResourceId, ResourceMap};
6use std::collections::HashMap;
7
8#[cfg(feature = "serde")]
9use serde::{Deserialize, Serialize};
10
11// *************
12// *** types ***
13// *************
14
15pub type ContainerMap = ResourceMap<Container>;
16pub type AssetMap = ResourceMap<Asset>;
17pub type ScriptMap = HashMap<ResourceId, RunParameters>;
18
19// *****************
20// *** Container ***
21// *****************
22
23#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
24#[derive(Debug)]
25pub struct Container {
26    pub properties: StandardProperties,
27    pub children: ContainerMap,
28    pub assets: AssetMap,
29    pub scripts: ScriptMap,
30}
31
32impl Container {
33    pub fn new() -> Self {
34        Container {
35            properties: StandardProperties::new(),
36            children: ContainerMap::new(),
37            assets: AssetMap::new(),
38            scripts: ScriptMap::new(),
39        }
40    }
41}
42
43#[cfg(test)]
44#[path = "./container_test.rs"]
45mod container_test;