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