pub struct HeaderExtension {
pub little_endian: bool,
pub message_length: Option<u32>,
pub timestamp: Option<HeTimestamp>,
pub uextension4: Option<[u8; 4]>,
pub wextension8: Option<[u8; 8]>,
pub checksum: ChecksumValue,
pub parameters: Option<ParameterList>,
}Expand description
Geparste HeaderExtension-Submessage.
Fields§
§little_endian: boolEndianness des Bodies (true = Little-Endian).
message_length: Option<u32>Falls L-Flag gesetzt: Restlaenge der Message.
timestamp: Option<HeTimestamp>Falls W-Flag gesetzt: Sender-Timestamp.
uextension4: Option<[u8; 4]>Falls U-Flag gesetzt: 4-Byte vendor-spezifischer Wert.
wextension8: Option<[u8; 8]>Falls V-Flag gesetzt: 16-Byte vendor-spezifischer Wert.
checksum: ChecksumValueFalls C-Flag != 0: Checksum-Wert.
parameters: Option<ParameterList>Falls P-Flag gesetzt: ParameterList.
Implementations§
Source§impl HeaderExtension
impl HeaderExtension
Sourcepub fn new() -> Self
pub fn new() -> Self
Leerer HE (alle optionalen Felder absent). Ueber den Builder- Stil der Felder direkt manipulieren.
Sourcepub fn encode_body(&self) -> Result<Vec<u8>, WireError>
pub fn encode_body(&self) -> Result<Vec<u8>, WireError>
Encoded den Body ohne Submessage-Header. Body-Laenge ist
per Konstruktion ≤ MAX_HE_LENGTH.
Reihenfolge: L → W → U → V → C → P, gem. Spec §9.4.5.2.
§Errors
ValueOutOfRange wenn der Body > u16::MAX oder
MAX_HE_LENGTHwaere.
Sourcepub fn encode(&self) -> Result<Vec<u8>, WireError>
pub fn encode(&self) -> Result<Vec<u8>, WireError>
Encoded HE als komplettes Submessage = 4-Byte SubmessageHeader
- Body.
octets_to_next_headerwird auf Body-Laenge gesetzt.
§Errors
ValueOutOfRange wenn Body-Laenge > u16::MAX.
Sourcepub fn decode_body(body: &[u8], flags: u8) -> Result<Self, WireError>
pub fn decode_body(body: &[u8], flags: u8) -> Result<Self, WireError>
Decoded den HE-Body aus einem Slice der Laenge
octets_to_next_header, gegeben das Flag-Byte aus dem
Submessage-Header.
§Errors
UnexpectedEof, ValueOutOfRange (Body groesser
MAX_HE_LENGTH).
Sourcepub fn decode(bytes: &[u8]) -> Result<Self, WireError>
pub fn decode(bytes: &[u8]) -> Result<Self, WireError>
Decoded eine komplette HE-Submessage (Header + Body) aus
bytes. Ueberprueft die SubmessageId.
§Errors
UnexpectedEof, UnknownSubmessageId, ValueOutOfRange.
Sourcepub fn validate_message_length(
&self,
actual_message_length: u32,
) -> Result<(), WireError>
pub fn validate_message_length( &self, actual_message_length: u32, ) -> Result<(), WireError>
Cross-Check: wenn message_length gesetzt ist, MUSS sie der
tatsaechlichen Restlaenge der RTPS-Message ab dem ersten
Submessage-Header (also ab Byte 20 = nach RtpsHeader) bis zum
Datagram-Ende entsprechen (Spec §8.3.7.4).
actual_message_length ist die vom Receiver gemessene
Restlaenge.
§Errors
ValueOutOfRange bei Mismatch.
Trait Implementations§
Source§impl Clone for HeaderExtension
impl Clone for HeaderExtension
Source§fn clone(&self) -> HeaderExtension
fn clone(&self) -> HeaderExtension
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for HeaderExtension
impl Debug for HeaderExtension
Source§impl Default for HeaderExtension
impl Default for HeaderExtension
Source§fn default() -> HeaderExtension
fn default() -> HeaderExtension
Source§impl PartialEq for HeaderExtension
impl PartialEq for HeaderExtension
Source§fn eq(&self, other: &HeaderExtension) -> bool
fn eq(&self, other: &HeaderExtension) -> bool
self and other values to be equal, and is used by ==.