use std::mem; use memflow::prelude::v1::*; use crate::error::{Error, Result}; #[repr(C)] pub struct UtlMemory { pub mem: Pointer64, pub alloc_count: u32, pub grow_size: u32, } impl UtlMemory { #[inline] pub fn get(&self, process: &mut IntoProcessInstanceArcBox<'_>, idx: usize) -> Result { if idx >= self.alloc_count as usize { return Err(Error::IndexOutOfBounds { idx, len: self.alloc_count as usize, }); } let ptr = Pointer64::from(self.mem.address() + (idx * mem::size_of::())); Ok(ptr.read(process)?) } } unsafe impl Pod for UtlMemory {}