pub fn read(&self) -> Option<T> {
    if let Some(ptr) = self.eval() {
      let mut value: T = unsafe { std::mem::zeroed() };
      let result = unsafe {
        ReadProcessMemory(
          self.proc as _,
          ptr as _,
          &mut value as *mut _ as _,
          std::mem::size_of::<T>(),
          null_mut(),
        )
      };

      match result {
        0 => None,
        _ => Some(value),
      }
    } else {
      None
    }
  }
/// Evaluates the pointer chain and attempts to read the datum.
/// Returns `None` if either the evaluation or the read failed.
Evaluates the pointer chain and attempts to read the datum.
Returns `None` if either the evaluation or the read failed.
Evaluates the pointer chain and attempts to read the datum . Returns ` None ` if either the evaluation or the read failed .
pub fn read(&self) -> Option<T> {
    if let Some(ptr) = self.eval() {
      let mut value: T = unsafe { std::mem::zeroed() };
      let result = unsafe {
        ReadProcessMemory(
          self.proc as _,
          ptr as _,
          &mut value as *mut _ as _,
          std::mem::size_of::<T>(),
          null_mut(),
        )
      };
      match result {
        0 => None,
        _ => Some(value),
      }
    } else {
      None
    }
  }
pub fn read ( & self ) -> Option < T > { if let Some ( ptr ) = self . eval ( ) { let mut value : T = unsafe { std :: mem :: zeroed ( ) } ; let result = unsafe { ReadProcessMemory ( self . proc as _ , ptr as _ , & mut value as * mut _ as _ , std :: mem :: size_of :: < T > ( ) , null_mut ( ) , ) } ; match result { 0 => None , _ => Some ( value ) , } } else { None } }
Evaluates the pointer chain and attempts to read the datum.
Evaluates the pointer chain and attempts to read the datum .
&self
&self