war/utils/darksiders1/
object.rs1use crate::darksiders1::gfc;
2use std::borrow::Cow;
3
4impl gfc::Object {
5 pub fn get_property(&self, name: &str) -> Option<&gfc::Value> {
6 let (_n, v) = self.properties.iter().find(|(n, _v)| n == name)?;
7 Some(v)
8 }
9
10 pub fn get_property_mut(&mut self, name: &str) -> Option<&mut gfc::Value> {
11 let (_n, v) = self.properties.iter_mut().find(|(n, _v)| n == name)?;
12 Some(v)
13 }
14
15 pub fn set_property<'n>(
16 &mut self,
17 name: impl Into<Cow<'n, str>>,
18 value: gfc::Value,
19 ) {
20 let name = name.into();
21 match self.properties.iter_mut().find(|(n, _v)| n == &*name) {
22 Some((_n, v)) => {
23 *v = value;
24 }
25 None => {
26 self.properties.push((name.into(), value));
27 }
28 }
29 }
30}