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