pub struct ParameterList {
pub parameters: Vec<Parameter>,
}Expand description
ParameterList = Sequenz von Parametern + Sentinel-Terminator.
Fields§
§parameters: Vec<Parameter>Liste der Parameter (ohne Sentinel — der wird automatisch beim Encode angefuegt).
Implementations§
Source§impl ParameterList
impl ParameterList
Sourcepub fn validate_must_understand<F>(&self, is_known: F) -> Result<(), WireError>
pub fn validate_must_understand<F>(&self, is_known: F) -> Result<(), WireError>
Validiert die ParameterList gegen die Must-Understand-Regel (DDSI-RTPS 2.5 §9.4.2.11.2).
Spec-Verhalten:
“If the receiver does not understand a parameter and the must_understand bit (0x4000) is set, the entire RTPS message carrying this ParameterList MUST be discarded.”
is_known ist ein Klassifikator: liefert true fuer alle PIDs,
die der Receiver versteht (ohne Must-Understand- und Vendor-
Bits, also masked PID).
§Errors
ValueOutOfRange mit Marker-Message bei Verletzung — der
Caller MUSS die Ganz-Message verwerfen.
Sourcepub fn validate_must_understand_in_data_pipeline(&self) -> Result<(), WireError>
pub fn validate_must_understand_in_data_pipeline(&self) -> Result<(), WireError>
Convenience-Wrapper um Self::validate_must_understand mit
dem standard-konformen is_standard_pid-Klassifikator.
Wird im Receiver-Pipeline-Hot-Path gerufen
(crates/rtps/src/datagram.rs::decode_datagram), sodass die
Spec-§9.4.2.11.2-Reject-Regel automatisch greift.
Vendor-Specific-PIDs (oberstes Bit gesetzt) sind explizit
erlaubt — der Vendor-Bit-Pfad ueberlebt die Pruefung in
validate_must_understand, weil das masked den Vendor-Bit
strippt aber is_standard_pid ihn nicht zurueckaddiert; der
Caller behandelt Vendor-PIDs als “kann ignoriert werden”.
§Errors
ValueOutOfRange bei Verletzung — Caller verwirft die
Message.
Sourcepub fn to_bytes(&self, little_endian: bool) -> Vec<u8> ⓘ
pub fn to_bytes(&self, little_endian: bool) -> Vec<u8> ⓘ
Encoded zu Bytes mit der gegebenen Endianness. Padding zu 4-Byte-Boundary wird pro Value automatisch eingefuegt; der Sentinel wird angefuegt.
Sourcepub fn from_bytes(bytes: &[u8], little_endian: bool) -> Result<Self, WireError>
pub fn from_bytes(bytes: &[u8], little_endian: bool) -> Result<Self, WireError>
Decoded eine ParameterList aus Bytes. Stoppt am Sentinel.
§Errors
UnexpectedEof bei truncated Eingabe; ValueOutOfRange wenn
Length nicht 4-Byte-aligned ist; ValueOutOfRange wenn die
Parameter-Zahl MAX_PARAMETERS uebersteigt (DoS-Cap).
Trait Implementations§
Source§impl Clone for ParameterList
impl Clone for ParameterList
Source§fn clone(&self) -> ParameterList
fn clone(&self) -> ParameterList
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 ParameterList
impl Debug for ParameterList
Source§impl Default for ParameterList
impl Default for ParameterList
Source§impl PartialEq for ParameterList
impl PartialEq for ParameterList
Source§fn eq(&self, other: &ParameterList) -> bool
fn eq(&self, other: &ParameterList) -> bool
self and other values to be equal, and is used by ==.