summaryrefslogtreecommitdiff
path: root/src/mongo/idl/idl_parser.cpp
diff options
context:
space:
mode:
authorArun Banala <arun.banala@mongodb.com>2020-11-02 18:09:28 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2021-01-07 20:04:53 +0000
commitc8ddb496f147e5a977eb668247b81da313d06e1d (patch)
tree34ba0cc443ec6294c5585d0951d5430cc69349e2 /src/mongo/idl/idl_parser.cpp
parentd0cfd1d0c0fcfd75525a8d8f3a050876bc9d1e40 (diff)
downloadmongo-c8ddb496f147e5a977eb668247b81da313d06e1d.tar.gz
SERVER-51619 Convert find command input to IDL
Diffstat (limited to 'src/mongo/idl/idl_parser.cpp')
-rw-r--r--src/mongo/idl/idl_parser.cpp25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/mongo/idl/idl_parser.cpp b/src/mongo/idl/idl_parser.cpp
index 0030f864380..89158281e92 100644
--- a/src/mongo/idl/idl_parser.cpp
+++ b/src/mongo/idl/idl_parser.cpp
@@ -335,4 +335,29 @@ std::vector<std::vector<std::uint8_t>> transformVector(const std::vector<ConstDa
return output;
}
+
+void noOpSerializer(bool, StringData fieldName, BSONObjBuilder* bob) {}
+
+void serializeBSONWhenNotEmpty(BSONObj obj, StringData fieldName, BSONObjBuilder* bob) {
+ if (!obj.isEmpty()) {
+ bob->append(fieldName, obj);
+ }
+}
+
+BSONObj parseOwnedBSON(BSONElement element) {
+ uassert(ErrorCodes::TypeMismatch,
+ str::stream() << "Expected field " << element.fieldNameStringData()
+ << "to be of type object",
+ element.type() == BSONType::Object);
+ return element.Obj().getOwned();
+}
+
+bool parseBoolean(BSONElement element) {
+ uassert(ErrorCodes::TypeMismatch,
+ str::stream() << "Expected field " << element.fieldNameStringData()
+ << "to be of type object",
+ element.type() == BSONType::Bool);
+ return element.boolean();
+}
+
} // namespace mongo