blob: 518e2483786910dede82cd0cfa2ce733d3155215 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
use super::pptr::PPtr;
use crate::object::Value;
use anyhow::Result;
use serde::Serialize;
#[derive(Debug, Serialize)]
pub struct Transform {
pub father: PPtr<Transform>,
pub children: Vec<PPtr<Transform>>,
}
impl Transform {
pub fn from_value(v: Value) -> Result<Self> {
let mut fields = v.as_class("Transform").unwrap();
Ok(Self {
children: fields
.remove("m_Children")
.unwrap()
.as_array()
.unwrap()
.into_iter()
.map(|e| PPtr::from_value(e).unwrap().cast())
.collect(),
father: PPtr::from_value(fields.remove("m_Father").unwrap())?.cast(),
})
}
}
|