NitroWireCodec<T extends Object> class
abstract
Platform-neutral codec for a @NitroCustomType T transported across the
bridge as an optional fixed-size value: [1B hasValue][encodedSize-1 bytes].
This is the byte-level counterpart of the native-only NitroFfiCodec<T>
(which speaks Pointer<Uint8>): the same wire layout expressed over
ByteData, so one codec implementation works on native AND web.
Web-targeting specs with @NitroCustomType must provide a
NitroWireCodec; native-only specs may keep using NitroFfiCodec.
Example:
class ColorWireCodec extends NitroWireCodec<Color> {
const ColorWireCodec();
@override int get encodedSize => 5; // 1B flag + 4B RGBA
@override void write(ByteData out, int offset, Color? v) {
out.setUint8(offset, v != null ? 1 : 0);
if (v != null) { out.setUint8(offset + 1, v.r); /* ... */ }
}
@override Color? read(ByteData bytes, int offset) {
if (bytes.getUint8(offset) == 0) return null;
return Color(bytes.getUint8(offset + 1), /* ... */);
}
}
- Implementers
Constructors
- NitroWireCodec()
-
const
Properties
- encodedSize → int
-
Number of bytes this optional type occupies on the wire, including the
leading hasValue flag byte.
no setter
- hashCode → int
-
The hash code for this object.
no setterinherited
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
Methods
-
decodeBytes(
Uint8List bytes, [int byteOffset = 0]) → T? - Convenience: decodes a buffer produced by encodeBytes (or the bridge).
-
encodeBytes(
T? value) → Uint8List - Convenience: encodes into a fresh buffer of exactly encodedSize bytes.
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
read(
ByteData bytes, int byteOffset) → T? -
Decodes from
byteOffset. First byte is the hasValue flag. -
toString(
) → String -
A string representation of this object.
inherited
-
write(
ByteData out, int byteOffset, T? value) → void -
Encodes
value(possibly null) atbyteOffset. Must write exactly encodedSize bytes (outis zeroed when freshly allocated, but a codec must not rely on that for the hasValue flag).
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited