aboutsummaryrefslogtreecommitdiff
path: root/src/object
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2025-03-13 18:07:07 +0100
committermetamuffin <metamuffin@disroot.org>2025-03-13 18:07:07 +0100
commit24d70ee5b9ed230e36b628b6b3931a5533578b56 (patch)
treec0b636101bba41e74b968685d80b85f83a49dddb /src/object
parent70d22e5162afa1b81f976acd1db534834010d3b8 (diff)
downloadunity-tools-24d70ee5b9ed230e36b628b6b3931a5533578b56.tar
unity-tools-24d70ee5b9ed230e36b628b6b3931a5533578b56.tar.bz2
unity-tools-24d70ee5b9ed230e36b628b6b3931a5533578b56.tar.zst
clean up code again
Diffstat (limited to 'src/object')
-rw-r--r--src/object/helper.rs45
-rw-r--r--src/object/mod.rs2
2 files changed, 19 insertions, 28 deletions
diff --git a/src/object/helper.rs b/src/object/helper.rs
index 3f41703..74d18ea 100644
--- a/src/object/helper.rs
+++ b/src/object/helper.rs
@@ -86,38 +86,29 @@ impl Value {
}
}
pub fn to_json(self) -> serde_json::Value {
+ use serde_json::{Number, Value as V};
match self {
- Value::Bool(x) => serde_json::Value::Bool(x),
- Value::U8(x) => serde_json::Value::Number(x.into()),
- Value::I8(x) => serde_json::Value::Number(x.into()),
- Value::U16(x) => serde_json::Value::Number(x.into()),
- Value::I16(x) => serde_json::Value::Number(x.into()),
- Value::U32(x) => serde_json::Value::Number(x.into()),
- Value::U64(x) => serde_json::Value::Number(x.into()),
- Value::I32(x) => serde_json::Value::Number(x.into()),
- Value::F32(x) => serde_json::Value::Number(
- serde_json::Number::from_f64(x as f64).unwrap_or(0.into()),
- ),
- Value::I64(x) => serde_json::Value::Number(x.into()),
- Value::F64(x) => serde_json::Value::Number(serde_json::Number::from_f64(x).unwrap()),
- Value::String(x) => serde_json::Value::String(x),
- Value::Typeless(values) => serde_json::Value::Array(
- values
- .into_iter()
- .map(|e| serde_json::Value::Number(e.into()))
- .collect(),
- ),
- Value::Array(values) => {
- serde_json::Value::Array(values.into_iter().map(Value::to_json).collect())
+ Value::Bool(x) => V::Bool(x),
+ Value::U8(x) => V::Number(x.into()),
+ Value::I8(x) => V::Number(x.into()),
+ Value::U16(x) => V::Number(x.into()),
+ Value::I16(x) => V::Number(x.into()),
+ Value::U32(x) => V::Number(x.into()),
+ Value::U64(x) => V::Number(x.into()),
+ Value::I32(x) => V::Number(x.into()),
+ Value::F32(x) => V::Number(Number::from_f64(x as f64).unwrap_or(0.into())),
+ Value::I64(x) => V::Number(x.into()),
+ Value::F64(x) => V::Number(Number::from_f64(x).unwrap()),
+ Value::String(x) => V::String(x),
+ Value::Typeless(values) => {
+ V::Array(values.into_iter().map(|e| V::Number(e.into())).collect())
}
- Value::Object { class, fields } => serde_json::Value::Object(
+ Value::Array(values) => V::Array(values.into_iter().map(Value::to_json).collect()),
+ Value::Object { class, fields } => V::Object(
fields
.into_iter()
.map(|(k, v)| (k, v.to_json()))
- .chain(Some((
- "@class".to_string(),
- serde_json::Value::String(class),
- )))
+ .chain(Some(("@class".to_string(), V::String(class))))
.collect(),
),
}
diff --git a/src/object/mod.rs b/src/object/mod.rs
index 6e643de..efc1544 100644
--- a/src/object/mod.rs
+++ b/src/object/mod.rs
@@ -2,8 +2,8 @@ use serde::Serialize;
use std::collections::BTreeMap;
pub mod helper;
-pub mod read;
pub mod parser;
+pub mod read;
#[derive(Debug, Clone, Serialize)]
pub enum Value {