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.rs12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/classes/mod.rs b/src/classes/mod.rs
index bfde8ad..8c0db51 100644
--- a/src/classes/mod.rs
+++ b/src/classes/mod.rs
@@ -2,6 +2,7 @@ pub mod assetinfo;
pub mod gameobject;
pub mod pptr;
pub mod transform;
+pub mod vectors;
use crate::object::Value;
use anyhow::Result;
@@ -38,6 +39,7 @@ impl HValue {
x if x.starts_with("PPtr<") => Self::PPtr(PPtr::from_value(value)?),
"AssetInfo" => Self::AssetInfo(AssetInfo::from_value(value)?),
"GameObject" => Self::GameObject(GameObject::from_value(value)?),
+ "Transform" => Self::Transform(Transform::from_value(value)?),
_ => {
let Value::Object { class, fields } = value else {
unreachable!()
@@ -107,3 +109,13 @@ impl HValue {
}
}
}
+
+trait FromValue: Sized {
+ fn from_value(v: Value) -> Result<Self>;
+}
+
+impl Value {
+ pub(self) fn parse<T: FromValue>(self) -> Result<T> {
+ T::from_value(self)
+ }
+}