diff options
author | metamuffin <metamuffin@disroot.org> | 2025-03-11 17:08:42 +0100 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2025-03-11 17:08:42 +0100 |
commit | 792ecfb57424ec407ee7b5f0de903cd0c902b68d (patch) | |
tree | e4319d44c6afbdbb87a2c7582eb71701266752d7 /src/object.rs | |
parent | 7250587f46ca51ad662a0895a51742669b9cbb8f (diff) | |
download | unity-tools-792ecfb57424ec407ee7b5f0de903cd0c902b68d.tar unity-tools-792ecfb57424ec407ee7b5f0de903cd0c902b68d.tar.bz2 unity-tools-792ecfb57424ec407ee7b5f0de903cd0c902b68d.tar.zst |
move classes to modules
Diffstat (limited to 'src/object.rs')
-rw-r--r-- | src/object.rs | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/src/object.rs b/src/object.rs index 061f58e..0068fc2 100644 --- a/src/object.rs +++ b/src/object.rs @@ -122,6 +122,13 @@ pub fn read_value( } impl Value { + pub fn class_name(&self) -> Option<&String> { + if let Value::Object { class, .. } = self { + Some(class) + } else { + None + } + } pub fn as_class(self, name: &str) -> Option<BTreeMap<String, Value>> { if let Value::Object { class, fields } = self { if class == name { Some(fields) } else { None } @@ -150,6 +157,34 @@ impl Value { None } } + pub fn as_u32(&self) -> Option<u32> { + if let Value::U32(s) = self { + Some(*s) + } else { + None + } + } + pub fn as_u16(&self) -> Option<u16> { + if let Value::U16(s) = self { + Some(*s) + } else { + None + } + } + pub fn as_bool(&self) -> Option<bool> { + if let Value::Bool(s) = self { + Some(*s) + } else { + None + } + } + pub fn as_array(self) -> Option<Vec<Value>> { + if let Value::Array(s) = self { + Some(s) + } else { + None + } + } pub fn to_json(self) -> serde_json::Value { match self { Value::Bool(x) => serde_json::Value::Bool(x), |