Dart Documentationbson

bson library

Functions

BsonObject bsonObjectFromTypeByte(int typeByte) #

BsonObject bsonObjectFromTypeByte(int typeByte){
 switch(typeByte){
   case _BSON_DATA_INT:
     return new BsonInt(null);
   case _BSON_DATA_LONG:
     return new BsonLong(null);
   case _BSON_DATA_NUMBER:
     return new BsonDouble(null);
   case _BSON_DATA_STRING:
     return new BsonString(null);
   case _BSON_DATA_ARRAY:
     return new BsonArray([]);
   case _BSON_DATA_OBJECT:
     return new BsonMap({});
   case _BSON_DATA_OID:
     return new ObjectId();
   case _BSON_DATA_NULL:
     return new BsonNull();
   case _BSON_DATA_DBPOINTER:
     return new DbRef(null,null);
   case _BSON_DATA_BOOLEAN:
     return new BsonBoolean(false);
   case _BSON_DATA_BINARY:
     return new BsonBinary(0);
   case _BSON_DATA_DATE:
     return new BsonDate(null);
   case _BSON_DATA_CODE:
     return new BsonCode(null);
   case _BSON_DATA_REGEXP:
     return new BsonRegexp(null);
   case _BSON_DATA_TIMESTAMP:
     return new Timestamp(0,0);
   default:
     throw new Exception("Not implemented for BSON TYPE $typeByte");
 }
}

BsonObject bsonObjectFrom(value) #

BsonObject bsonObjectFrom(var value){
 if (value is BsonObject){
   return value;
 }
 if (value is int){
   return value.bitLength > 31 ? new BsonLong(value) : new BsonInt(value);
 }
 if (value is num){
   return new BsonDouble(value);
 }
 if (value is String){
   return new BsonString(value);
 }
 if (value is Map){
   return new BsonMap(value);
 }
 if (value is List){
   return new BsonArray(value);
 }
 if (value == null){
   return new BsonNull();
 }
 if (value is DateTime){
   return new BsonDate(value);
 }
 if (value == true || value == false){
   return new BsonBoolean(value);
 }
 if (value is BsonRegexp){
   return value;
 }
 throw new Exception("Not implemented for $value");
}

int elementSize(String name, value) #

int elementSize(String name, value) {
 int size = 1;
 if (name != null){
   size += _Statics.getKeyUtf8(name).length + 1;
 }
 size += bsonObjectFrom(value).byteLength();
 return size;
}

Classes