pub struct OptionView<'a>(/* private fields */);Expand description
Zero-copy view into a variable-length SD option in a buffer.
Wire layout:
[0..2]: length (u16 BE) =total_size- 3[2]: option type (u8)[3]: reserved/discard flag (u8)[4..]: type-specific data
Implementations§
Source§impl<'a> OptionView<'a>
impl<'a> OptionView<'a>
Sourcepub fn option_type(&self) -> Result<OptionType, Error>
pub fn option_type(&self) -> Result<OptionType, Error>
Sourcepub fn as_ipv4(&self) -> Result<(Ipv4Addr, TransportProtocol, u16), Error>
pub fn as_ipv4(&self) -> Result<(Ipv4Addr, TransportProtocol, u16), Error>
Parse as IPv4 endpoint/multicast/SD option.
Returns (ip, protocol, port).
§Errors
Returns Error::InvalidOptionTransportProtocol if the protocol byte is unrecognized.
Sourcepub fn as_ipv6(&self) -> Result<(Ipv6Addr, TransportProtocol, u16), Error>
pub fn as_ipv6(&self) -> Result<(Ipv6Addr, TransportProtocol, u16), Error>
Parse as IPv6 endpoint/multicast/SD option.
Returns (ip, protocol, port).
§Errors
Returns Error::InvalidOptionTransportProtocol if the protocol byte is unrecognized.
Sourcepub fn configuration_bytes(&self) -> &'a [u8] ⓘ
pub fn configuration_bytes(&self) -> &'a [u8] ⓘ
Raw configuration bytes (for Configuration options).
Sourcepub fn as_load_balancing(&self) -> Result<(u16, u16), Error>
pub fn as_load_balancing(&self) -> Result<(u16, u16), Error>
Parse as load-balancing option. Returns (priority, weight).
§Errors
Currently always succeeds; the Result return type is reserved for future validation.
Sourcepub fn to_owned(&self) -> Result<Options, Error>
pub fn to_owned(&self) -> Result<Options, Error>
Converts this view into an owned Options.
§Errors
Returns an error if the option type is unrecognized, the transport protocol byte
is invalid, or the configuration string exceeds MAX_CONFIGURATION_STRING_LENGTH.
§Panics
Panics if a configuration string passes the length check but fails to fit into the heapless buffer (unreachable in practice).
Trait Implementations§
Source§impl<'a> Clone for OptionView<'a>
impl<'a> Clone for OptionView<'a>
Source§fn clone(&self) -> OptionView<'a>
fn clone(&self) -> OptionView<'a>
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more