use anyhow::Result; use super::SchemaType; use crate::util::{Address, Process}; pub struct SchemaClassFieldData<'a> { process: &'a Process, address: Address, } impl<'a> SchemaClassFieldData<'a> { pub fn new(process: &'a Process, address: Address) -> Self { Self { process, address } } pub fn name(&self) -> Result { let name_ptr = self.process.read_memory::(self.address)?; self.process.read_string_length(name_ptr.into(), 64) } pub fn r#type(&self) -> Result { Ok(SchemaType::new( self.process, self.process .read_memory::(self.address + 0x8)? .into(), )) } pub fn offset(&self) -> Result { self.process.read_memory::(self.address + 0x10) } }