pack method

void pack(
  1. dynamic value
)

Implementation

void pack(Packable value) {
  if (value is String) {
    packString(value);
  } else if (value is num) {
    if (value.floor() == value) {
      packInteger(value.toInt());
    } else {
      packDouble(value);
    }
  } else if (value is bool) {
    if (value) {
      _bufferBuilder.append(0xc3);
    } else {
      _bufferBuilder.append(0xc2);
    }
  } else if (value == null) {
    _bufferBuilder.append(0xc0);
  } else if (value is List) {
    packArray(value);
  } else if (value is ByteBuffer) {
    packBin(Uint8List.view(value));
  } else if (value is DateTime) {
    packString(value.toString());
  } else if (value is Map) {
    packObject(value);
  } else {
    throw Exception('Type "${value.runtimeType}" not yet supported');
  }
  _bufferBuilder.flush();
}