pub struct Cell<T, A: Any + Copy>where
T: BinRead<Args = A>,{ /* private fields */ }
Expand description
A Cell represents the most basic data structure of hive files. Nearly every other data is stored as content of a Cell.
As Cell is a generic, it receives two generic arguments:
T
denotes the type contained in the CellA
specifies the arguments required by binread to correctly parse an object of typeT
§Usage
If you know what kind of data should be stored in a certain Cell,
you can simply read it. Assume you have Cell which should contain
a KeyNode
, you can read it as follows:
use nt_hive2::*;
use std::io::{Seek, SeekFrom};
use binread::BinReaderExt;
hive.seek(SeekFrom::Start(offset.0.into()))?;
let cell: Cell<KeyNodeWithMagic, ()> = hive.read_le().unwrap();
let my_node: KeyNode = {
let knwm: KeyNodeWithMagic = cell.into();
knwm.into()
};
For conveniance reasons, Hive already presents the method read_structure, which does basically the same.
Implementations§
source§impl<T, A> Cell<T, A>
impl<T, A> Cell<T, A>
sourcepub fn is_deleted(&self) -> bool
pub fn is_deleted(&self) -> bool
sourcepub fn is_allocated(&self) -> bool
pub fn is_allocated(&self) -> bool
returns true iff the Cell is considered as being allocated. This is a conveniance function which simply calls is_deleted and negates the result.
Trait Implementations§
source§impl<T, A: Any + Copy> BinRead for Cell<T, A>where
T: BinRead<Args = A>,
impl<T, A: Any + Copy> BinRead for Cell<T, A>where
T: BinRead<Args = A>,
§type Args = A
type Args = A
The type of arguments needed to be supplied in order to read this type, usually a tuple. Read more
source§fn read_options<R: Read + Seek>(
__binread_generated_var_reader: &mut R,
__binread_generated_var_options: &ReadOptions,
__binread_generated_var_arguments: Self::Args
) -> BinResult<Self>
fn read_options<R: Read + Seek>( __binread_generated_var_reader: &mut R, __binread_generated_var_options: &ReadOptions, __binread_generated_var_arguments: Self::Args ) -> BinResult<Self>
Read the type from the reader
source§fn read<R>(reader: &mut R) -> Result<Self, Error>
fn read<R>(reader: &mut R) -> Result<Self, Error>
Read the type from the reader while assuming no arguments have been passed Read more
source§fn read_args<R>(reader: &mut R, args: Self::Args) -> Result<Self, Error>
fn read_args<R>(reader: &mut R, args: Self::Args) -> Result<Self, Error>
Read the type from the reader using the specified arguments
fn after_parse<R>( &mut self, _: &mut R, _: &ReadOptions, _: Self::Args ) -> Result<(), Error>
source§impl From<Cell<KeyNodeWithMagic, ()>> for KeyNodeWithMagic
impl From<Cell<KeyNodeWithMagic, ()>> for KeyNodeWithMagic
source§impl<T, A: PartialEq + Any + Copy> PartialEq for Cell<T, A>
impl<T, A: PartialEq + Any + Copy> PartialEq for Cell<T, A>
impl<T, A: Eq + Any + Copy> Eq for Cell<T, A>
impl<T, A: Any + Copy> StructuralPartialEq for Cell<T, A>where
T: BinRead<Args = A>,
Auto Trait Implementations§
impl<T, A> Freeze for Cell<T, A>where
T: Freeze,
impl<T, A> RefUnwindSafe for Cell<T, A>where
T: RefUnwindSafe,
impl<T, A> Send for Cell<T, A>where
T: Send,
impl<T, A> Sync for Cell<T, A>where
T: Sync,
impl<T, A> Unpin for Cell<T, A>where
T: Unpin,
impl<T, A> UnwindSafe for Cell<T, A>where
T: UnwindSafe,
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more