encode method

Uint8List encode()

Implementation

Uint8List encode() {
  if (_value is int) {
    final buf = Uint8List(1 + 2 + 8);
    final bd  = ByteData.sublistView(buf);
    buf[0] = _keyTypeInt;
    bd.setUint16(1, 8, Endian.little);
    bd.setInt64(3, _value as int, Endian.little);
    return buf;
  }
  if (_value is double) {
    final buf = Uint8List(1 + 2 + 8);
    final bd  = ByteData.sublistView(buf);
    buf[0] = _keyTypeFloat;
    bd.setUint16(1, 8, Endian.little);
    bd.setFloat64(3, _value as double, Endian.little);
    return buf;
  }
  final strBytes = utf8.encode(_value.toString());
  final buf = Uint8List(1 + 2 + strBytes.length);
  final bd  = ByteData.sublistView(buf);
  buf[0] = _keyTypeString;
  bd.setUint16(1, strBytes.length, Endian.little);
  buf.setRange(3, 3 + strBytes.length, strBytes);
  return buf;
}