aboutsummaryrefslogtreecommitdiff
path: root/src/classes/mod.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/classes/mod.rs')
-rw-r--r--src/classes/mod.rs35
1 files changed, 3 insertions, 32 deletions
diff --git a/src/classes/mod.rs b/src/classes/mod.rs
index 501fdf9..038e701 100644
--- a/src/classes/mod.rs
+++ b/src/classes/mod.rs
@@ -53,41 +53,12 @@ impl HValue {
"GameObject" => Self::GameObject(GameObject::from_value(value)?),
"Transform" => Self::Transform(Transform::from_value(value)?),
"Texture2D" => Self::Texture2D(Texture2D::from_value(value)?),
- "StreamingInfo" => Self::StreamingInfo(StreamingInfo::from_value(value)?),
+ // "StreamingInfo" => Self::StreamingInfo(StreamingInfo::from_value(value)?),
// "SubMesh" => Self::SubMesh(SubMesh::from_value(value)?),
- "Mesh" => Self::Mesh(Mesh::from_value(value)?),
+ // "Mesh" => Self::Mesh(Mesh::from_value(value)?),
// "VertexData" => Self::VertexData(VertexData::from_value(value)?),
// "ChannelInfo" => Self::ChannelInfo(ChannelInfo::from_value(value)?),
- _ => {
- let Value::Object { class, fields } = value else {
- unreachable!()
- };
- let mut fields = fields
- .into_iter()
- .map(|(k, v)| Ok((k, HValue::from_value(v)?)))
- .collect::<Result<BTreeMap<_, _>>>()?;
- match class.as_str() {
- "map" => {
- let Self::Array(a) = fields.remove("Array").unwrap() else {
- unreachable!()
- };
- Self::Map(
- a.into_iter()
- .map(|e| {
- let Self::Pair(k, v) = e else { unreachable!() };
- (k.as_value().unwrap().clone().as_string().unwrap(), *v)
- })
- .collect(),
- )
- }
- "pair" => Self::Pair(
- Box::new(fields.remove("first").unwrap()),
- Box::new(fields.remove("second").unwrap()),
- ),
- "vector" => fields.remove("Array").unwrap(),
- _ => Self::Object { class, fields },
- }
- }
+ _ => Self::Value([value]),
}
}
Value::Array(a) => Self::Array(