Skip to main content

Module buffer

Module buffer 

Source
Expand description

Alignment-tracking Buffer-Reader/-Writer fuer XCDR.

XCDR-Daten sind alignment-pflichtig: ein u32-Feld muss an einer 4-Byte-Boundary beginnen, ein u64 an 8-Byte-Boundary etc. Der Encoder fuegt vor jedem Write die noetigen Padding-Bytes (Wert 0) ein; der Decoder skipped sie.

Alignment wird relativ zum Stream-Anfang (Offset 0) berechnet, nicht relativ zur aktuellen Position innerhalb eines verschachtelten Members. Das entspricht OMG-XTypes §7.4.1: “All elements are aligned to a multiple of their alignment requirement, relative to the beginning of the encapsulation”.

Bewusste Architektur-Wahl: nur dynamischer Vec-basierter Writer (alloc-Feature). Slice-basierter Writer für no_std-without-alloc ist nicht implementiert — alloc ist via zerodds-foundation ohnehin transitive Mandatory-Dep.

Structs§

BufferReader
Lese-Buffer mit Alignment-Tracking.
BufferWriter
Schreib-Buffer mit Alignment-Tracking und konfigurierbarer Endianness.

Functions§

padding_for
Berechnet die Anzahl Padding-Bytes, um pos an die naechste Vielfaches-von-alignment-Boundary zu schieben.