summaryrefslogtreecommitdiff
path: root/src/mongo/bson
diff options
context:
space:
mode:
authorMark Benvenuto <mark.benvenuto@mongodb.com>2022-02-07 10:22:05 -0500
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2022-02-09 20:10:05 +0000
commit7fabf68464b333a5ff269ce8386dfbbd9ab49ac8 (patch)
treea406dde55b1bdacfe0734dadf0f281581a6beb03 /src/mongo/bson
parentc6e6615a5d4ead5afe5e961dbb7dc5998153ff60 (diff)
downloadmongo-7fabf68464b333a5ff269ce8386dfbbd9ab49ac8.tar.gz
SERVER-63384 Add support for encrypted fields to create collectionr5.3.0-alpha4
Diffstat (limited to 'src/mongo/bson')
-rw-r--r--src/mongo/bson/bsontypes.cpp10
-rw-r--r--src/mongo/bson/bsontypes.h6
2 files changed, 16 insertions, 0 deletions
diff --git a/src/mongo/bson/bsontypes.cpp b/src/mongo/bson/bsontypes.cpp
index 59fb2abba96..8be3c5e1d04 100644
--- a/src/mongo/bson/bsontypes.cpp
+++ b/src/mongo/bson/bsontypes.cpp
@@ -137,6 +137,16 @@ BSONType typeFromName(StringData name) {
return *typeAlias;
}
+Status isValidBSONTypeName(StringData typeName) {
+ try {
+ typeFromName(typeName);
+ } catch (const ExceptionFor<ErrorCodes::BadValue>& ex) {
+ return ex.toStatus();
+ }
+
+ return Status::OK();
+}
+
std::ostream& operator<<(std::ostream& stream, BSONType type) {
return stream << typeName(type);
}
diff --git a/src/mongo/bson/bsontypes.h b/src/mongo/bson/bsontypes.h
index 3463285f636..0dc2fe8a4ab 100644
--- a/src/mongo/bson/bsontypes.h
+++ b/src/mongo/bson/bsontypes.h
@@ -135,6 +135,12 @@ std::ostream& operator<<(std::ostream& stream, BSONType type);
*/
bool isValidBSONType(int type);
+/**
+ * IDL callback validator
+ */
+Status isValidBSONTypeName(StringData typeName);
+
+
inline bool isNumericBSONType(BSONType type) {
switch (type) {
case NumberDouble: