pub struct CommandMatch {
    pub command: Command,
    pub mask: [u8; 64],
}Expand description
A versatile definition to command match NVMe commands
Matches NVMe commands using a 512-bit mask: (command_bytes & mask) == (pattern_bytes & mask).
A convenient way to build the patterns is to treat both the command and the mask as
nvme_spec::Command and max out the fields in the mask that should be
matched.
§Example
Builds a command match that matches on all CREATE_IO_COMPLETION_QUEUE admin commands.
use nvme_resources::fault::CommandMatch;
use nvme_spec::Command;
use zerocopy::FromZeros;
use zerocopy::IntoBytes;
pub fn build_command_match() -> CommandMatch {
    let mut command = Command::new_zeroed();
    let mut mask = Command::new_zeroed();
    command.cdw0 = command.cdw0.with_opcode(nvme_spec::AdminOpcode::CREATE_IO_COMPLETION_QUEUE.0);
    mask.cdw0 = mask.cdw0.with_opcode(u8::MAX);
    CommandMatch {
        command,
        mask: mask.as_bytes().try_into().expect("mask should be 64 bytes"),
    }
}Fields§
§command: CommandCommand to match against
mask: [u8; 64]Bitmask that defines the bits to match against
Trait Implementations§
Source§impl Clone for CommandMatch
 
impl Clone for CommandMatch
Source§fn clone(&self) -> CommandMatch
 
fn clone(&self) -> CommandMatch
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
 
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from 
source. Read moreSource§impl DefaultEncoding for CommandMatch
 
impl DefaultEncoding for CommandMatch
Source§impl PartialEq for CommandMatch
 
impl PartialEq for CommandMatch
Source§impl<'encoding> StructDecodeMetadata<'encoding, Resource> for CommandMatch
 
impl<'encoding> StructDecodeMetadata<'encoding, Resource> for CommandMatch
Source§impl StructEncodeMetadata<Resource> for CommandMatch
 
impl StructEncodeMetadata<Resource> for CommandMatch
Source§impl StructMetadata for CommandMatch
 
impl StructMetadata for CommandMatch
impl StructuralPartialEq for CommandMatch
Auto Trait Implementations§
impl Freeze for CommandMatch
impl RefUnwindSafe for CommandMatch
impl Send for CommandMatch
impl Sync for CommandMatch
impl Unpin for CommandMatch
impl UnwindSafe for CommandMatch
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
Source§impl<T> CloneToUninit for Twhere
    T: Clone,
 
impl<T> CloneToUninit for Twhere
    T: Clone,
§impl<T> Instrument for T
 
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
 
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
 
fn in_current_span(self) -> Instrumented<Self>
§impl<T> MeshField for T
 
impl<T> MeshField for T
§impl<T> MeshPayload for T
 
impl<T> MeshPayload for T
§impl<T> SerializeMessage for Twhere
    T: 'static + MeshPayload + Send,
 
impl<T> SerializeMessage for Twhere
    T: 'static + MeshPayload + Send,
§fn compute_message_size(&mut self, sizer: MessageSizer<'_>)
 
fn compute_message_size(&mut self, sizer: MessageSizer<'_>)
Computes the message size, as in [
MessageEncode::compute_message_size].§fn write_message(self, writer: MessageWriter<'_, '_, Resource>)
 
fn write_message(self, writer: MessageWriter<'_, '_, Resource>)
Writes the message, as in [
MessageEncode::write_message].