vibe.d beta banner
get vibe.d

Asynchronous I/O that doesn’t get in your way, written in D

Bson.opIndex - multiple declarations

Function Bson.opIndex

Allows accessing fields of a BSON object using [].

inout inout(Bson) opIndex (
  string idx
) @safe;

Returns a null value if the specified field does not exist.


Bson value = Bson.emptyObject;
value["a"] = 1;
value["b"] = true;
value["c"] = "foo";
assert(value["a"] == Bson(1));
assert(value["b"] == Bson(true));
assert(value["c"] == Bson("foo"));


auto srcUuid = UUID("00010203-0405-0607-0809-0a0b0c0d0e0f");

Bson b = srcUuid;
auto u = b.get!UUID();

assert(b.type == Bson.Type.binData);
assert(b.get!BsonBinData().type == BsonBinData.Type.uuid);
assert(u == srcUuid);

Function Bson.opIndex

Allows index based access of a BSON array value.

inout inout(Bson) opIndex (
  ulong idx
) @safe;

Returns a null value if the index is out of bounds.


Bson[] entries;
entries ~= Bson(1);
entries ~= Bson(true);
entries ~= Bson("foo");

Bson value = Bson(entries);
assert(value[0] == Bson(1));
assert(value[1] == Bson(true));
assert(value[2] == Bson("foo"));


Sönke Ludwig


© 2012-2015 Sönke Ludwig


Subject to the terms of the MIT license, as written in the included LICENSE.txt file.