encode method

  1. @override
String encode(
  1. List<bool> value
)
override

Encodes a value of type T to the storage type TStore.

Implementation

@override
String encode(List<bool> value) {
  final length = value.length;
  final byteLength = (length + 7) ~/ 8;
  final bytes = Uint8List(4 + byteLength); // first 4 bytes for length

  final byteData = ByteData.sublistView(bytes);
  byteData.setUint32(0, length, Endian.big);

  for (var i = 0; i < length; i++) {
    if (value[i]) {
      bytes[4 + (i >> 3)] |= (1 << (i & 7));
    }
  }
  return base64Encode(bytes);
}