IncompatibleFeatures

Struct IncompatibleFeatures 

Source
pub struct IncompatibleFeatures { /* private fields */ }
Expand description

Bitmask of incompatible features. An implementation must fail to open an image if an unknown bit is set.

Implementations§

Source§

impl IncompatibleFeatures

Source

pub const fn new() -> Self

Returns an instance with zero initialized data.

Source§

impl IncompatibleFeatures

Source

pub const fn into_bytes(self) -> [u8; 8]

Returns the underlying bits.

§Layout

The returned byte array is layed out in the same way as described here.

Source

pub const fn from_bytes(bytes: [u8; 8]) -> Self

Converts the given bytes directly into the bitfield struct.

Source§

impl IncompatibleFeatures

Source

pub fn dirty(&self) -> <bool as Specifier>::InOut

Returns the value of dirty. Dirty bit. If this bit is set then refcounts may be inconsistent, make sure to scan L1/L2 tables to repair refcounts before accessing the image.

Source

pub fn dirty_or_err( &self, ) -> Result<<bool as Specifier>::InOut, InvalidBitPattern<<bool as Specifier>::Bytes>>

Returns the value of dirty.

#Errors

If the returned value contains an invalid bit pattern for dirty. Dirty bit. If this bit is set then refcounts may be inconsistent, make sure to scan L1/L2 tables to repair refcounts before accessing the image.

Source

pub fn with_dirty(self, new_val: <bool as Specifier>::InOut) -> Self

Returns a copy of the bitfield with the value of dirty set to the given value.

#Panics

If the given value is out of bounds for dirty. Dirty bit. If this bit is set then refcounts may be inconsistent, make sure to scan L1/L2 tables to repair refcounts before accessing the image.

Source

pub fn with_dirty_checked( self, new_val: <bool as Specifier>::InOut, ) -> Result<Self, OutOfBounds>

Returns a copy of the bitfield with the value of dirty set to the given value.

#Errors

If the given value is out of bounds for dirty. Dirty bit. If this bit is set then refcounts may be inconsistent, make sure to scan L1/L2 tables to repair refcounts before accessing the image.

Source

pub fn set_dirty(&mut self, new_val: <bool as Specifier>::InOut)

Sets the value of dirty to the given value.

#Panics

If the given value is out of bounds for dirty. Dirty bit. If this bit is set then refcounts may be inconsistent, make sure to scan L1/L2 tables to repair refcounts before accessing the image.

Source

pub fn set_dirty_checked( &mut self, new_val: <bool as Specifier>::InOut, ) -> Result<(), OutOfBounds>

Sets the value of dirty to the given value.

#Errors

If the given value is out of bounds for dirty. Dirty bit. If this bit is set then refcounts may be inconsistent, make sure to scan L1/L2 tables to repair refcounts before accessing the image.

Source

pub fn corrupt(&self) -> <bool as Specifier>::InOut

Returns the value of corrupt. Corrupt bit. If this bit is set then any data structure may be corrupt and the image must not be written to (unless for regaining consistency).

Source

pub fn corrupt_or_err( &self, ) -> Result<<bool as Specifier>::InOut, InvalidBitPattern<<bool as Specifier>::Bytes>>

Returns the value of corrupt.

#Errors

If the returned value contains an invalid bit pattern for corrupt. Corrupt bit. If this bit is set then any data structure may be corrupt and the image must not be written to (unless for regaining consistency).

Source

pub fn with_corrupt(self, new_val: <bool as Specifier>::InOut) -> Self

Returns a copy of the bitfield with the value of corrupt set to the given value.

#Panics

If the given value is out of bounds for corrupt. Corrupt bit. If this bit is set then any data structure may be corrupt and the image must not be written to (unless for regaining consistency).

Source

pub fn with_corrupt_checked( self, new_val: <bool as Specifier>::InOut, ) -> Result<Self, OutOfBounds>

Returns a copy of the bitfield with the value of corrupt set to the given value.

#Errors

If the given value is out of bounds for corrupt. Corrupt bit. If this bit is set then any data structure may be corrupt and the image must not be written to (unless for regaining consistency).

Source

pub fn set_corrupt(&mut self, new_val: <bool as Specifier>::InOut)

Sets the value of corrupt to the given value.

#Panics

If the given value is out of bounds for corrupt. Corrupt bit. If this bit is set then any data structure may be corrupt and the image must not be written to (unless for regaining consistency).

Source

pub fn set_corrupt_checked( &mut self, new_val: <bool as Specifier>::InOut, ) -> Result<(), OutOfBounds>

Sets the value of corrupt to the given value.

#Errors

If the given value is out of bounds for corrupt. Corrupt bit. If this bit is set then any data structure may be corrupt and the image must not be written to (unless for regaining consistency).

Source

pub fn external_data_file(&self) -> <bool as Specifier>::InOut

Returns the value of external_data_file. External data file bit. If this bit is set, an external data file is used. Guest clusters are then stored in the external data file. For such images, clusters in the external data file are not refcounted. The offset field in the Standard Cluster Descriptor must match the guest offset and neither compressed clusters nor internal snapshots are supported.

An External Data File Name header extension may be present if this bit is set.

Source

pub fn external_data_file_or_err( &self, ) -> Result<<bool as Specifier>::InOut, InvalidBitPattern<<bool as Specifier>::Bytes>>

Returns the value of external_data_file.

#Errors

If the returned value contains an invalid bit pattern for external_data_file. External data file bit. If this bit is set, an external data file is used. Guest clusters are then stored in the external data file. For such images, clusters in the external data file are not refcounted. The offset field in the Standard Cluster Descriptor must match the guest offset and neither compressed clusters nor internal snapshots are supported.

An External Data File Name header extension may be present if this bit is set.

Source

pub fn with_external_data_file( self, new_val: <bool as Specifier>::InOut, ) -> Self

Returns a copy of the bitfield with the value of external_data_file set to the given value.

#Panics

If the given value is out of bounds for external_data_file. External data file bit. If this bit is set, an external data file is used. Guest clusters are then stored in the external data file. For such images, clusters in the external data file are not refcounted. The offset field in the Standard Cluster Descriptor must match the guest offset and neither compressed clusters nor internal snapshots are supported.

An External Data File Name header extension may be present if this bit is set.

Source

pub fn with_external_data_file_checked( self, new_val: <bool as Specifier>::InOut, ) -> Result<Self, OutOfBounds>

Returns a copy of the bitfield with the value of external_data_file set to the given value.

#Errors

If the given value is out of bounds for external_data_file. External data file bit. If this bit is set, an external data file is used. Guest clusters are then stored in the external data file. For such images, clusters in the external data file are not refcounted. The offset field in the Standard Cluster Descriptor must match the guest offset and neither compressed clusters nor internal snapshots are supported.

An External Data File Name header extension may be present if this bit is set.

Source

pub fn set_external_data_file(&mut self, new_val: <bool as Specifier>::InOut)

Sets the value of external_data_file to the given value.

#Panics

If the given value is out of bounds for external_data_file. External data file bit. If this bit is set, an external data file is used. Guest clusters are then stored in the external data file. For such images, clusters in the external data file are not refcounted. The offset field in the Standard Cluster Descriptor must match the guest offset and neither compressed clusters nor internal snapshots are supported.

An External Data File Name header extension may be present if this bit is set.

Source

pub fn set_external_data_file_checked( &mut self, new_val: <bool as Specifier>::InOut, ) -> Result<(), OutOfBounds>

Sets the value of external_data_file to the given value.

#Errors

If the given value is out of bounds for external_data_file. External data file bit. If this bit is set, an external data file is used. Guest clusters are then stored in the external data file. For such images, clusters in the external data file are not refcounted. The offset field in the Standard Cluster Descriptor must match the guest offset and neither compressed clusters nor internal snapshots are supported.

An External Data File Name header extension may be present if this bit is set.

Source

pub fn has_compression_type(&self) -> <bool as Specifier>::InOut

Returns the value of has_compression_type. Compression type bit. If this bit is set, a non-default compression is used for compressed clusters. The compression_type field must be present and not zero.

Source

pub fn has_compression_type_or_err( &self, ) -> Result<<bool as Specifier>::InOut, InvalidBitPattern<<bool as Specifier>::Bytes>>

Returns the value of has_compression_type.

#Errors

If the returned value contains an invalid bit pattern for has_compression_type. Compression type bit. If this bit is set, a non-default compression is used for compressed clusters. The compression_type field must be present and not zero.

Source

pub fn with_has_compression_type( self, new_val: <bool as Specifier>::InOut, ) -> Self

Returns a copy of the bitfield with the value of has_compression_type set to the given value.

#Panics

If the given value is out of bounds for has_compression_type. Compression type bit. If this bit is set, a non-default compression is used for compressed clusters. The compression_type field must be present and not zero.

Source

pub fn with_has_compression_type_checked( self, new_val: <bool as Specifier>::InOut, ) -> Result<Self, OutOfBounds>

Returns a copy of the bitfield with the value of has_compression_type set to the given value.

#Errors

If the given value is out of bounds for has_compression_type. Compression type bit. If this bit is set, a non-default compression is used for compressed clusters. The compression_type field must be present and not zero.

Source

pub fn set_has_compression_type(&mut self, new_val: <bool as Specifier>::InOut)

Sets the value of has_compression_type to the given value.

#Panics

If the given value is out of bounds for has_compression_type. Compression type bit. If this bit is set, a non-default compression is used for compressed clusters. The compression_type field must be present and not zero.

Source

pub fn set_has_compression_type_checked( &mut self, new_val: <bool as Specifier>::InOut, ) -> Result<(), OutOfBounds>

Sets the value of has_compression_type to the given value.

#Errors

If the given value is out of bounds for has_compression_type. Compression type bit. If this bit is set, a non-default compression is used for compressed clusters. The compression_type field must be present and not zero.

Source

pub fn extended_l2(&self) -> <bool as Specifier>::InOut

Returns the value of extended_l2. Extended L2 Entries. If this bit is set then L2 table entries use an extended format that allows subcluster-based allocation. See the Extended L2 Entries section for more details.

Source

pub fn extended_l2_or_err( &self, ) -> Result<<bool as Specifier>::InOut, InvalidBitPattern<<bool as Specifier>::Bytes>>

Returns the value of extended_l2.

#Errors

If the returned value contains an invalid bit pattern for extended_l2. Extended L2 Entries. If this bit is set then L2 table entries use an extended format that allows subcluster-based allocation. See the Extended L2 Entries section for more details.

Source

pub fn with_extended_l2(self, new_val: <bool as Specifier>::InOut) -> Self

Returns a copy of the bitfield with the value of extended_l2 set to the given value.

#Panics

If the given value is out of bounds for extended_l2. Extended L2 Entries. If this bit is set then L2 table entries use an extended format that allows subcluster-based allocation. See the Extended L2 Entries section for more details.

Source

pub fn with_extended_l2_checked( self, new_val: <bool as Specifier>::InOut, ) -> Result<Self, OutOfBounds>

Returns a copy of the bitfield with the value of extended_l2 set to the given value.

#Errors

If the given value is out of bounds for extended_l2. Extended L2 Entries. If this bit is set then L2 table entries use an extended format that allows subcluster-based allocation. See the Extended L2 Entries section for more details.

Source

pub fn set_extended_l2(&mut self, new_val: <bool as Specifier>::InOut)

Sets the value of extended_l2 to the given value.

#Panics

If the given value is out of bounds for extended_l2. Extended L2 Entries. If this bit is set then L2 table entries use an extended format that allows subcluster-based allocation. See the Extended L2 Entries section for more details.

Source

pub fn set_extended_l2_checked( &mut self, new_val: <bool as Specifier>::InOut, ) -> Result<(), OutOfBounds>

Sets the value of extended_l2 to the given value.

#Errors

If the given value is out of bounds for extended_l2. Extended L2 Entries. If this bit is set then L2 table entries use an extended format that allows subcluster-based allocation. See the Extended L2 Entries section for more details.

Trait Implementations§

Source§

impl BinRead for IncompatibleFeatures

Source§

type Args = ()

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>

Read the type from the reader
Source§

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
Source§

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
Source§

fn after_parse<R>( &mut self, _: &mut R, _: &ReadOptions, _: Self::Args, ) -> Result<(), Error>
where R: Read + Seek,

Source§

fn args_default() -> Option<Self::Args>

The default arguments to be used when using the read shortcut method. Override this for any type that optionally requries arguments
Source§

impl CheckFillsUnalignedBits for IncompatibleFeatures

Source§

impl Debug for IncompatibleFeatures

Source§

fn fmt(&self, __bf_f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.