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
sourceimpl<T, A> Cell<T, A> where
T: BinRead<Args = A>,
A: Any + Copy,
impl<T, A> Cell<T, A> where
T: BinRead<Args = A>,
A: Any + Copy,
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
sourceimpl<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
sourcefn 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
sourcefn read<R>(reader: &mut R) -> Result<Self, Error> where
R: Read + Seek,
fn read<R>(reader: &mut R) -> Result<Self, Error> where
R: Read + Seek,
Read the type from the reader while assuming no arguments have been passed Read more
sourcefn read_args<R>(reader: &mut R, args: Self::Args) -> Result<Self, Error> where
R: Read + Seek,
fn read_args<R>(reader: &mut R, args: Self::Args) -> Result<Self, Error> where
R: Read + Seek,
Read the type from the reader using the specified arguments
fn after_parse<R>(
&mut self,
&mut R,
&ReadOptions,
Self::Args
) -> Result<(), Error> where
R: Read + Seek,
sourceimpl From<Cell<KeyNodeWithMagic, ()>> for KeyNodeWithMagic
impl From<Cell<KeyNodeWithMagic, ()>> for KeyNodeWithMagic
sourcefn from(cell: Cell<KeyNodeWithMagic, ()>) -> Self
fn from(cell: Cell<KeyNodeWithMagic, ()>) -> Self
Converts to this type from the input type.
sourceimpl From<Cell<KeyValueWithMagic, ()>> for KeyValue
impl From<Cell<KeyValueWithMagic, ()>> for KeyValue
sourcefn from(cell: Cell<KeyValueWithMagic, ()>) -> Self
fn from(cell: Cell<KeyValueWithMagic, ()>) -> Self
Converts to this type from the input type.
sourceimpl<T: PartialEq, A: PartialEq + Any + Copy> PartialEq<Cell<T, A>> for Cell<T, A> where
T: BinRead<Args = A>,
impl<T: PartialEq, A: PartialEq + Any + Copy> PartialEq<Cell<T, A>> for Cell<T, A> where
T: BinRead<Args = A>,
impl<T: Eq, A: Eq + Any + Copy> Eq for Cell<T, A> where
T: BinRead<Args = A>,
impl<T, A: Any + Copy> StructuralEq for Cell<T, A> where
T: BinRead<Args = A>,
impl<T, A: Any + Copy> StructuralPartialEq for Cell<T, A> where
T: BinRead<Args = A>,
Auto Trait Implementations
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
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more