aboutsummaryrefslogtreecommitdiff
path: root/src/classes/assetinfo.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/classes/assetinfo.rs')
-rw-r--r--src/classes/assetinfo.rs23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/classes/assetinfo.rs b/src/classes/assetinfo.rs
new file mode 100644
index 0000000..dadcea3
--- /dev/null
+++ b/src/classes/assetinfo.rs
@@ -0,0 +1,23 @@
+use super::{gameobject::GameObject, pptr::PPtr};
+use crate::object::Value;
+use anyhow::Result;
+use serde::Serialize;
+
+#[derive(Debug, Serialize)]
+pub struct AssetInfo {
+ pub preload_index: i32,
+ pub preload_size: i32,
+ pub asset: PPtr<GameObject>,
+}
+impl AssetInfo {
+ pub fn from_value(v: Value) -> Result<Self> {
+ let mut fields = v.as_class("AssetInfo").unwrap();
+ Ok(AssetInfo {
+ preload_index: fields["preloadIndex"].as_i32().unwrap(),
+ preload_size: fields["preloadSize"].as_i32().unwrap(),
+ asset: PPtr::from_value(fields.remove("asset").unwrap())
+ .unwrap()
+ .cast(),
+ })
+ }
+}