Merge dev branch into main

This commit is contained in:
a2x
2024-03-28 22:19:20 +10:00
parent 755093fe06
commit 889ef7dcd8
315 changed files with 552043 additions and 333811 deletions

View File

@@ -0,0 +1,29 @@
use std::mem;
use memflow::prelude::v1::*;
use crate::error::{Error, Result};
#[repr(C)]
pub struct UtlVector<T: Sized + Pod> {
pub size: u32,
pub mem: Pointer64<T>,
}
impl<T: Sized + Pod> UtlVector<T> {
#[inline]
pub fn get(&self, process: &mut IntoProcessInstanceArcBox<'_>, idx: usize) -> Result<T> {
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::<T>()));
Ok(process.read_ptr(ptr)?)
}
}
unsafe impl<T: Sized + Pod> Pod for UtlVector<T> {}