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