BsatnDecoder class
Decodes BSATN (Binary Spacetime Algebraic Type Notation) format into Dart values
BSATN is SpacetimeDB's binary serialization format. Use this decoder to:
- Parse incoming messages from SpacetimeDB
- Decode table rows
- Read reducer results
All integers are decoded from little-endian byte order.
Example:
final bytes = Uint8List.fromList([...]);
final decoder = BsatnDecoder(bytes);
// Decode primitive types
final text = decoder.readString();
final number = decoder.readU32();
final flag = decoder.readBool();
// Decode optional values
final maybeValue = decoder.readOption<String>(() => decoder.readString());
// Decode arrays
final numbers = decoder.readArray<int>(() => decoder.readU32());
Constructors
- BsatnDecoder(Uint8List _bytes)
Properties
Methods
-
hexDump(
int length) → String - Debug helper: Dump next N bytes as hex
-
hexDumpAll(
) → String - Debug helper: Dump all remaining bytes as hex
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
readArray<
T> (T readItem()) → List< T> - Decodes an array with length prefix
-
readBool(
) → bool - Decodes a boolean value (0 = false, 1 = true)
-
readByteArray(
) → List< int> -
readBytes(
int length) → Uint8List -
readF32(
) → double -
readF64(
) → double -
readI16(
) → int -
readI32(
) → int -
readI64(
) → Int64 -
readI8(
) → int -
readIdentity(
) → Identity -
readList<
T> (T readItem()) → List< T> -
readMap<
K, V> (K readKey(), V readValue()) → Map< K, V> - Decodes a map with length prefix
-
readOption<
T> (T readValue()) → T? - Decodes an optional value
-
readString(
) → String - Decodes a UTF-8 string with length prefix
-
readU16(
) → int -
readU32(
) → int - Decodes an unsigned 32-bit integer from little-endian bytes
-
readU64(
) → Int64 -
readU8(
) → int - Decodes an unsigned 8-bit integer (0-255)
-
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited