aboutsummaryrefslogtreecommitdiff
path: root/src/classes/assetinfo.rs
blob: 01c4530b1b0aee90dcbdcbcb5647fc3566b63225 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
use super::{gameobject::GameObject, pptr::PPtr};
use crate::object::{Value, parser::FromValue};
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 FromValue for AssetInfo {
    fn from_value(v: Value) -> Result<Self> {
        let mut fields = v.as_class("AssetInfo").unwrap();
        Ok(AssetInfo {
            preload_index: fields.field("preloadIndex")?,
            preload_size: fields.field("preloadSize")?,
            asset: fields.field("asset")?,
        })
    }
}