From 792ecfb57424ec407ee7b5f0de903cd0c902b68d Mon Sep 17 00:00:00 2001 From: metamuffin Date: Tue, 11 Mar 2025 17:08:42 +0100 Subject: move classes to modules --- src/object.rs | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) (limited to 'src/object.rs') 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> { 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 { + if let Value::U32(s) = self { + Some(*s) + } else { + None + } + } + pub fn as_u16(&self) -> Option { + if let Value::U16(s) = self { + Some(*s) + } else { + None + } + } + pub fn as_bool(&self) -> Option { + if let Value::Bool(s) = self { + Some(*s) + } else { + None + } + } + pub fn as_array(self) -> Option> { + 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), -- cgit v1.2.3-70-g09d2