pub struct Block2RequestData(/* private fields */);
Expand description
Request data from a Block2 request
As the M flag is unused in requests, it is not captured in here (and ignored at construction).
Implementations§
Source§impl Block2RequestData
impl Block2RequestData
Sourcepub fn from_message(
message: &impl ReadableMessage,
) -> Result<Self, BadBlock2Option>
pub fn from_message( message: &impl ReadableMessage, ) -> Result<Self, BadBlock2Option>
Extract a request block 2 value from a request message.
Absence of the option is not an error and results in the default value to be returned; exceeding length or duplicate entries are an error and are indicated by returning an error, which should be responded to with a Bad Option error.
Sourcepub fn from_option(option: &impl MessageOption) -> Result<Self, BadBlock2Option>
pub fn from_option(option: &impl MessageOption) -> Result<Self, BadBlock2Option>
Extract a request block 2 value from a single option. An error is indicated on a malformed (ie. overly long) option.
Compared to Block2RequestData::from_message(), this can easily be packed into a single loop that processes all options and fails on unknown critical ones; on the other hand, this does not automate the check for duplicate options.
§Panics
In debug mode if the option is not Block2
pub fn to_option_value(&self, more: bool) -> u32
Trait Implementations§
Source§impl Default for Block2RequestData
impl Default for Block2RequestData
Source§impl TryFromOption for Block2RequestData
impl TryFromOption for Block2RequestData
fn try_from(value: &impl MessageOption) -> Option<Self>
Auto Trait Implementations§
impl Freeze for Block2RequestData
impl RefUnwindSafe for Block2RequestData
impl Send for Block2RequestData
impl Sync for Block2RequestData
impl Unpin for Block2RequestData
impl UnwindSafe for Block2RequestData
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
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...)
attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 8 bytes