pub struct LockFlag { /* private fields */ }Expand description
Lock flags describing how the range is being locked or unlocked. Valid combinations are: shared lock, exclusive lock, unlock, or any of shared/exclusive combined with fail_immediately.
Reference: MS-SMB2 2.2.26.1
Implementations§
Source§impl LockFlag
impl LockFlag
Sourcepub const fn into_bytes(self) -> [u8; 4]
pub const fn into_bytes(self) -> [u8; 4]
Sourcepub const fn from_bytes(bytes: [u8; 4]) -> Self
pub const fn from_bytes(bytes: [u8; 4]) -> Self
Converts the given bytes directly into the bitfield struct.
Source§impl LockFlag
impl LockFlag
Returns the value of shared. Range must be locked shared, allowing other opens to read or take shared locks. Other opens must not be allowed to write within the range.
Returns the value of shared.
#Errors
If the returned value contains an invalid bit pattern for shared. Range must be locked shared, allowing other opens to read or take shared locks. Other opens must not be allowed to write within the range.
Returns a copy of the bitfield with the value of shared set to the given value.
#Panics
If the given value is out of bounds for shared. Range must be locked shared, allowing other opens to read or take shared locks. Other opens must not be allowed to write within the range.
Returns a copy of the bitfield with the value of shared set to the given value.
#Errors
If the given value is out of bounds for shared. Range must be locked shared, allowing other opens to read or take shared locks. Other opens must not be allowed to write within the range.
Sets the value of shared to the given value.
#Panics
If the given value is out of bounds for shared. Range must be locked shared, allowing other opens to read or take shared locks. Other opens must not be allowed to write within the range.
Sets the value of shared to the given value.
#Errors
If the given value is out of bounds for shared. Range must be locked shared, allowing other opens to read or take shared locks. Other opens must not be allowed to write within the range.
Sourcepub fn exclusive(&self) -> <bool as Specifier>::InOut
pub fn exclusive(&self) -> <bool as Specifier>::InOut
Returns the value of exclusive. Range must be locked exclusive, not allowing other opens to read, write, or lock within the range.
Sourcepub fn exclusive_or_err(
&self,
) -> Result<<bool as Specifier>::InOut, InvalidBitPattern<<bool as Specifier>::Bytes>>
pub fn exclusive_or_err( &self, ) -> Result<<bool as Specifier>::InOut, InvalidBitPattern<<bool as Specifier>::Bytes>>
Returns the value of exclusive.
#Errors
If the returned value contains an invalid bit pattern for exclusive. Range must be locked exclusive, not allowing other opens to read, write, or lock within the range.
Sourcepub fn with_exclusive(self, new_val: <bool as Specifier>::InOut) -> Self
pub fn with_exclusive(self, new_val: <bool as Specifier>::InOut) -> Self
Returns a copy of the bitfield with the value of exclusive set to the given value.
#Panics
If the given value is out of bounds for exclusive. Range must be locked exclusive, not allowing other opens to read, write, or lock within the range.
Sourcepub fn with_exclusive_checked(
self,
new_val: <bool as Specifier>::InOut,
) -> Result<Self, OutOfBounds>
pub fn with_exclusive_checked( self, new_val: <bool as Specifier>::InOut, ) -> Result<Self, OutOfBounds>
Returns a copy of the bitfield with the value of exclusive set to the given value.
#Errors
If the given value is out of bounds for exclusive. Range must be locked exclusive, not allowing other opens to read, write, or lock within the range.
Sourcepub fn set_exclusive(&mut self, new_val: <bool as Specifier>::InOut)
pub fn set_exclusive(&mut self, new_val: <bool as Specifier>::InOut)
Sets the value of exclusive to the given value.
#Panics
If the given value is out of bounds for exclusive. Range must be locked exclusive, not allowing other opens to read, write, or lock within the range.
Sourcepub fn set_exclusive_checked(
&mut self,
new_val: <bool as Specifier>::InOut,
) -> Result<(), OutOfBounds>
pub fn set_exclusive_checked( &mut self, new_val: <bool as Specifier>::InOut, ) -> Result<(), OutOfBounds>
Sets the value of exclusive to the given value.
#Errors
If the given value is out of bounds for exclusive. Range must be locked exclusive, not allowing other opens to read, write, or lock within the range.
Sourcepub fn unlock(&self) -> <bool as Specifier>::InOut
pub fn unlock(&self) -> <bool as Specifier>::InOut
Returns the value of unlock. Range must be unlocked from a previous lock. Unlock range must be identical to lock range.
Sourcepub fn unlock_or_err(
&self,
) -> Result<<bool as Specifier>::InOut, InvalidBitPattern<<bool as Specifier>::Bytes>>
pub fn unlock_or_err( &self, ) -> Result<<bool as Specifier>::InOut, InvalidBitPattern<<bool as Specifier>::Bytes>>
Returns the value of unlock.
#Errors
If the returned value contains an invalid bit pattern for unlock. Range must be unlocked from a previous lock. Unlock range must be identical to lock range.
Sourcepub fn with_unlock(self, new_val: <bool as Specifier>::InOut) -> Self
pub fn with_unlock(self, new_val: <bool as Specifier>::InOut) -> Self
Returns a copy of the bitfield with the value of unlock set to the given value.
#Panics
If the given value is out of bounds for unlock. Range must be unlocked from a previous lock. Unlock range must be identical to lock range.
Sourcepub fn with_unlock_checked(
self,
new_val: <bool as Specifier>::InOut,
) -> Result<Self, OutOfBounds>
pub fn with_unlock_checked( self, new_val: <bool as Specifier>::InOut, ) -> Result<Self, OutOfBounds>
Returns a copy of the bitfield with the value of unlock set to the given value.
#Errors
If the given value is out of bounds for unlock. Range must be unlocked from a previous lock. Unlock range must be identical to lock range.
Sourcepub fn set_unlock(&mut self, new_val: <bool as Specifier>::InOut)
pub fn set_unlock(&mut self, new_val: <bool as Specifier>::InOut)
Sets the value of unlock to the given value.
#Panics
If the given value is out of bounds for unlock. Range must be unlocked from a previous lock. Unlock range must be identical to lock range.
Sourcepub fn set_unlock_checked(
&mut self,
new_val: <bool as Specifier>::InOut,
) -> Result<(), OutOfBounds>
pub fn set_unlock_checked( &mut self, new_val: <bool as Specifier>::InOut, ) -> Result<(), OutOfBounds>
Sets the value of unlock to the given value.
#Errors
If the given value is out of bounds for unlock. Range must be unlocked from a previous lock. Unlock range must be identical to lock range.
Sourcepub fn fail_immediately(&self) -> <bool as Specifier>::InOut
pub fn fail_immediately(&self) -> <bool as Specifier>::InOut
Returns the value of fail_immediately. Lock operation must fail immediately if it conflicts with an existing lock, instead of waiting for the range to become available.
Sourcepub fn fail_immediately_or_err(
&self,
) -> Result<<bool as Specifier>::InOut, InvalidBitPattern<<bool as Specifier>::Bytes>>
pub fn fail_immediately_or_err( &self, ) -> Result<<bool as Specifier>::InOut, InvalidBitPattern<<bool as Specifier>::Bytes>>
Returns the value of fail_immediately.
#Errors
If the returned value contains an invalid bit pattern for fail_immediately. Lock operation must fail immediately if it conflicts with an existing lock, instead of waiting for the range to become available.
Sourcepub fn with_fail_immediately(self, new_val: <bool as Specifier>::InOut) -> Self
pub fn with_fail_immediately(self, new_val: <bool as Specifier>::InOut) -> Self
Returns a copy of the bitfield with the value of fail_immediately set to the given value.
#Panics
If the given value is out of bounds for fail_immediately. Lock operation must fail immediately if it conflicts with an existing lock, instead of waiting for the range to become available.
Sourcepub fn with_fail_immediately_checked(
self,
new_val: <bool as Specifier>::InOut,
) -> Result<Self, OutOfBounds>
pub fn with_fail_immediately_checked( self, new_val: <bool as Specifier>::InOut, ) -> Result<Self, OutOfBounds>
Returns a copy of the bitfield with the value of fail_immediately set to the given value.
#Errors
If the given value is out of bounds for fail_immediately. Lock operation must fail immediately if it conflicts with an existing lock, instead of waiting for the range to become available.
Sourcepub fn set_fail_immediately(&mut self, new_val: <bool as Specifier>::InOut)
pub fn set_fail_immediately(&mut self, new_val: <bool as Specifier>::InOut)
Sets the value of fail_immediately to the given value.
#Panics
If the given value is out of bounds for fail_immediately. Lock operation must fail immediately if it conflicts with an existing lock, instead of waiting for the range to become available.
Sourcepub fn set_fail_immediately_checked(
&mut self,
new_val: <bool as Specifier>::InOut,
) -> Result<(), OutOfBounds>
pub fn set_fail_immediately_checked( &mut self, new_val: <bool as Specifier>::InOut, ) -> Result<(), OutOfBounds>
Sets the value of fail_immediately to the given value.
#Errors
If the given value is out of bounds for fail_immediately. Lock operation must fail immediately if it conflicts with an existing lock, instead of waiting for the range to become available.
Trait Implementations§
Source§impl BinRead for LockFlag
impl BinRead for LockFlag
Source§fn read_options<R: Read + Seek>(
__binrw_generated_var_reader: &mut R,
__binrw_generated_var_endian: Endian,
__binrw_generated_var_arguments: Self::Args<'_>,
) -> BinResult<Self>
fn read_options<R: Read + Seek>( __binrw_generated_var_reader: &mut R, __binrw_generated_var_endian: Endian, __binrw_generated_var_arguments: Self::Args<'_>, ) -> BinResult<Self>
Source§fn read<R>(reader: &mut R) -> Result<Self, Error>
fn read<R>(reader: &mut R) -> Result<Self, Error>
Self from the reader using default arguments. Read moreSource§fn read_be<R>(reader: &mut R) -> Result<Self, Error>
fn read_be<R>(reader: &mut R) -> Result<Self, Error>
Self from the reader using default arguments and assuming
big-endian byte order. Read moreSource§fn read_le<R>(reader: &mut R) -> Result<Self, Error>
fn read_le<R>(reader: &mut R) -> Result<Self, Error>
Self from the reader using default arguments and assuming
little-endian byte order. Read moreSource§fn read_ne<R>(reader: &mut R) -> Result<Self, Error>
fn read_ne<R>(reader: &mut R) -> Result<Self, Error>
T from the reader assuming native-endian byte order. Read moreSource§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>
Self from the reader using the given arguments. Read moreSource§fn read_be_args<R>(reader: &mut R, args: Self::Args<'_>) -> Result<Self, Error>
fn read_be_args<R>(reader: &mut R, args: Self::Args<'_>) -> Result<Self, Error>
Self from the reader, assuming big-endian byte order, using the
given arguments. Read moreSource§impl BinWrite for LockFlag
impl BinWrite for LockFlag
Source§fn write_options<W: Write + Seek>(
&self,
__binrw_generated_var_writer: &mut W,
__binrw_generated_var_endian: Endian,
__binrw_generated_var_arguments: Self::Args<'_>,
) -> BinResult<()>
fn write_options<W: Write + Seek>( &self, __binrw_generated_var_writer: &mut W, __binrw_generated_var_endian: Endian, __binrw_generated_var_arguments: Self::Args<'_>, ) -> BinResult<()>
Source§fn write<W>(&self, writer: &mut W) -> Result<(), Error>
fn write<W>(&self, writer: &mut W) -> Result<(), Error>
Self to the writer using default arguments. Read moreSource§fn write_be<W>(&self, writer: &mut W) -> Result<(), Error>
fn write_be<W>(&self, writer: &mut W) -> Result<(), Error>
Self to the writer assuming big-endian byte order. Read moreSource§fn write_le<W>(&self, writer: &mut W) -> Result<(), Error>
fn write_le<W>(&self, writer: &mut W) -> Result<(), Error>
Self to the writer assuming little-endian byte order. Read moreSource§fn write_ne<W>(&self, writer: &mut W) -> Result<(), Error>
fn write_ne<W>(&self, writer: &mut W) -> Result<(), Error>
Self to the writer assuming native-endian byte order. Read moreSource§fn write_args<W>(
&self,
writer: &mut W,
args: Self::Args<'_>,
) -> Result<(), Error>
fn write_args<W>( &self, writer: &mut W, args: Self::Args<'_>, ) -> Result<(), Error>
Self to the writer using the given arguments. Read moreSource§fn write_be_args<W>(
&self,
writer: &mut W,
args: Self::Args<'_>,
) -> Result<(), Error>
fn write_be_args<W>( &self, writer: &mut W, args: Self::Args<'_>, ) -> Result<(), Error>
Self to the writer, assuming big-endian byte order, using the
given arguments. Read more