Skip to main content

enigma_3d/
data.rs

1use std::any::Any;
2
3pub struct AppStateData {
4    name: String,
5    value: Box<dyn Any>,
6}
7impl AppStateData {
8    pub fn new(name: &str, value: Box<dyn Any>) -> Self {
9        AppStateData {
10            name: name.to_string(),
11            value,
12        }
13    }
14
15    pub fn get_name(&self) -> &str {
16        &self.name
17    }
18
19    pub fn get_value(&self) -> &dyn Any {
20        self.value.as_ref()
21    }
22
23    pub fn get_value_mut(&mut self) -> &mut dyn Any {
24        self.value.as_mut()
25    }
26
27    // Since the value is already a Box<dyn Any>, setting a new value should accept a Box<dyn Any>
28    pub fn set_value(&mut self, value: Box<dyn Any>) {
29        self.value = value;
30    }
31}