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
| 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 |