decode method
Implementation
RitoPrimitiveList decode(Uint8List bytes) {
if (bytes.length > ritoMaxWireBytes) {
throw const FormatException('RITODL1 exceeds the byte limit.');
}
final reader = RitoBinaryReader(bytes);
reader.expectMagic(_magic, 'primitive list magic');
final version = reader.uint32('primitive list version');
if (version != formatVersion) {
reader.fail('unsupported primitive list version: $version');
}
final ratio = reader.float64('primitive list ratio');
if (ratio <= 0) {
reader.fail('primitive list ratio must be positive');
}
final count = reader.count('primitive count');
final commands = <RitoPrimitive>[];
for (var index = 0; index < count; index += 1) {
commands.add(_primitive(reader));
}
reader.finish('primitive list');
return RitoPrimitiveList(
formatVersion: version,
ratio: ratio,
commands: commands,
);
}