pub struct BufferWriter { /* private fields */ }Expand description
Schreib-Buffer mit Alignment-Tracking und konfigurierbarer Endianness.
Phase 0 nutzt Vec<u8> als Backing — wachsendes alloc-Feature.
Implementations§
Source§impl BufferWriter
impl BufferWriter
Sourcepub fn new(endianness: Endianness) -> Self
pub fn new(endianness: Endianness) -> Self
Erstellt einen leeren Writer mit der gegebenen Endianness.
Sourcepub fn with_capacity(endianness: Endianness, cap: usize) -> Self
pub fn with_capacity(endianness: Endianness, cap: usize) -> Self
Erstellt einen Writer mit vor-allokierter Kapazitaet.
Sourcepub fn endianness(&self) -> Endianness
pub fn endianness(&self) -> Endianness
Liefert die aktuelle Endianness.
Sourcepub fn into_bytes(self) -> Vec<u8> ⓘ
pub fn into_bytes(self) -> Vec<u8> ⓘ
Konsumiert den Writer und liefert den geschriebenen Buffer.
Sourcepub fn align(&mut self, alignment: usize)
pub fn align(&mut self, alignment: usize)
Fuegt Null-Padding ein, bis die aktuelle Position ein Vielfaches
von alignment ist. Alignment muss eine Zweierpotenz sein
(1, 2, 4, 8); andere Werte sind in XCDR nicht definiert.
Sourcepub fn write_bytes(&mut self, data: &[u8]) -> Result<(), EncodeError>
pub fn write_bytes(&mut self, data: &[u8]) -> Result<(), EncodeError>
Schreibt rohe Bytes ohne Alignment.
§Errors
Liefert nie einen Fehler bei Vec-basiertem Backing — die
Signatur ist symmetrisch zum Slice-basierten Writer (Phase 1).
Sourcepub fn write_string(&mut self, s: &str) -> Result<(), EncodeError>
pub fn write_string(&mut self, s: &str) -> Result<(), EncodeError>
Schreibt einen CDR-String (§9.3.2.7): 4-byte length (inkl. Null-Terminator) + UTF-8 Bytes + 1 Null-Byte. Kein Trailing- Padding — das naechste Feld aligned sich selbst.
§Errors
Wie write_bytes.
Trait Implementations§
Source§impl Clone for BufferWriter
impl Clone for BufferWriter
Source§fn clone(&self) -> BufferWriter
fn clone(&self) -> BufferWriter
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more