std.pack

Binäres Serialisieren und Deserialisieren von Werten in Byte-Puffer mit definierten Byte-Ordnungen. Unterstützt VarInt-Kodierung (kompakte Ganzzahlen), Int8/16/32/64, Bool, Float32/64, Strings mit Längenprefix, Null-Marker und Array-Header. Jede Pack-Funktion gibt die neue Puffer-Position zurück.

Einsatzbereiche: Netzwerkprotokolle (BSON, MQTT, eigene Binärformate), IPC-Kommunikation, Binärdateiformate, Serialisierung für Redis/MongoDB-Protokollimplementierungen.

Autor: Andreas Röne
Copyright: 2024-2025 Andreas Röne


Funktionen

Signatur Sichtbarkeit Beschreibung
WriteVarInt(buf: int64, pos: int64, val: int64): int64 pub Schreibt Ganzzahl als kompaktes VarInt
ReadVarInt(buf: int64, pos: int64): int64 pub Liest VarInt-kodierte Ganzzahl aus Puffer
PackInt64(buf: int64, pos: int64, val: int64): int64 pub Serialisiert 64-Bit-Ganzzahl in Puffer
UnpackInt64(buf: int64, pos: int64): int64 pub Deserialisiert 64-Bit-Ganzzahl aus Puffer
PackInt32(buf: int64, pos: int64, val: int64): int64 pub Serialisiert 32-Bit-Ganzzahl in Puffer
UnpackInt32(buf: int64, pos: int64): int64 pub Deserialisiert 32-Bit-Ganzzahl aus Puffer
PackInt16(buf: int64, pos: int64, val: int64): int64 pub Serialisiert 16-Bit-Ganzzahl in Puffer
UnpackInt16(buf: int64, pos: int64): int64 pub Deserialisiert 16-Bit-Ganzzahl aus Puffer
PackInt8(buf: int64, pos: int64, val: int64): int64 pub Serialisiert 8-Bit-Ganzzahl in Puffer
UnpackInt8(buf: int64, pos: int64): int64 pub Deserialisiert 8-Bit-Ganzzahl aus Puffer
PackBool(buf: int64, pos: int64, val: bool): int64 pub Serialisiert Bool-Wert in Puffer
UnpackBool(buf: int64, pos: int64): bool pub Deserialisiert Bool-Wert aus Puffer
PackFloat64(buf: int64, pos: int64, val: f64): int64 pub Serialisiert 64-Bit-Fließkommazahl in Puffer
UnpackFloat64(buf: int64, pos: int64): f64 pub Deserialisiert 64-Bit-Fließkommazahl aus Puffer
PackFloat32(buf: int64, pos: int64, val: f64): int64 pub Serialisiert 32-Bit-Fließkommazahl in Puffer
UnpackFloat32(buf: int64, pos: int64): f64 pub Deserialisiert 32-Bit-Fließkommazahl aus Puffer
PackString(buf: int64, pos: int64, s: int64): int64 pub Serialisiert String mit Längenprefix in Puffer
UnpackString(buf: int64, pos: int64): int64 pub Deserialisiert String mit Längenprefix aus Puffer
PackNull(buf: int64, pos: int64): int64 pub Schreibt Null-Marker in Puffer
IsNull(buf: int64, pos: int64): bool pub Prüft ob aktuelle Position ein Null-Marker ist
PackArrayStart(buf: int64, pos: int64, count: int64): int64 pub Schreibt Array-Header mit Elementanzahl
UnpackArrayStart(buf: int64, pos: int64): int64 pub Liest Array-Header und gibt Elementanzahl zurück
VarIntSize(val: int64): int64 pub Berechnet Byte-Größe einer VarInt-Kodierung
StringPackSize(s: int64): int64 pub Berechnet Byte-Größe eines serialisierten Strings