Packet.from constructor

Packet.from(
  1. dynamic data
)

Allow Packets to be created from different data types. Supported data types are: String, numbers, Map, List, and Uint8List. Complex data types such as Map and List must be supported by jsonEncode

Implementation

factory Packet.from(dynamic data){
  Packet p = Packet();
  String content;
  if( data is Uint8List ){
    p._bytes = data.toList();
    return p;
  }
  else if( data is String )
    content = data;
  else if( data is Map || data is List )
    content = jsonEncode(data);
  else if( data is num )
    content = data.toString();
  else if( data is bool )
    content = "$data";
  else
    throw new Exception("Unsupported data type. Serialize to one of the supported formats");

  p._bytes = utf8.encode(content);
  return p;
}