pub struct IdentityRequestFilters<'a> { /* private fields */ }Expand description
Interprets the option block of an MacCommand::IdentityRequest.
Borrows the raw block and decodes its identity_filter options on demand.
A responder uses nonce to obtain the correlation value it
must echo, and selects to decide whether it is a target
of the request.
Implementations§
Source§impl<'a> IdentityRequestFilters<'a>
impl<'a> IdentityRequestFilters<'a>
Sourcepub fn nonce(&self) -> Result<Option<u32>, AppParseError>
pub fn nonce(&self) -> Result<Option<u32>, AppParseError>
The correlation nonce the responder must echo into its identity’s Nonce
option, or None if the request carried no NONCE option.
Returns the first NONCE option; tolerates minimal (≤4 byte) encodings.
Sourcepub fn hint_filtered(&self) -> bool
pub fn hint_filtered(&self) -> bool
Whether the request carries at least one FILTER_NODE_HINT filter.
A hint filter names a single node, so such a request solicits one reply however far it travels. Without one the request selects by role or capability and every node it reaches may answer, which is what confines a broadcast or multicast solicitation — and its replies — to the requester’s own neighbourhood.
A malformed option block reads as unfiltered, which is the conservative answer: it keeps the strict rules in force.
Sourcepub fn selects(
&self,
role: NodeRole,
capabilities: NodeCapabilities,
hint: &NodeHint,
) -> Result<bool, AppParseError>
pub fn selects( &self, role: NodeRole, capabilities: NodeCapabilities, hint: &NodeHint, ) -> Result<bool, AppParseError>
Whether a node with the given identity is selected by this request.
Filters combine as a logical AND across distinct filter types and a logical OR among repeated filters of the same type. An unknown critical option (odd key) excludes the node; unknown elective options are ignored. A well-formed request with no filters (a unicast request) selects every node.
Trait Implementations§
Source§impl<'a> Clone for IdentityRequestFilters<'a>
impl<'a> Clone for IdentityRequestFilters<'a>
Source§fn clone(&self) -> IdentityRequestFilters<'a>
fn clone(&self) -> IdentityRequestFilters<'a>
1.0.0§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl<'a> Debug for IdentityRequestFilters<'a>
impl<'a> Debug for IdentityRequestFilters<'a>
impl<'a> Copy for IdentityRequestFilters<'a>
Auto Trait Implementations§
impl<'a> Freeze for IdentityRequestFilters<'a>
impl<'a> RefUnwindSafe for IdentityRequestFilters<'a>
impl<'a> Send for IdentityRequestFilters<'a>
impl<'a> Sync for IdentityRequestFilters<'a>
impl<'a> Unpin for IdentityRequestFilters<'a>
impl<'a> UnwindSafe for IdentityRequestFilters<'a>
Blanket Implementations§
§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§unsafe fn clone_to_uninit(&self, dest: *mut u8)
unsafe fn clone_to_uninit(&self, dest: *mut u8)
clone_to_uninit)