diff options
Diffstat (limited to 'src/classes/mod.rs')
-rw-r--r-- | src/classes/mod.rs | 35 |
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( |