summaryrefslogtreecommitdiff
path: root/src/mongo/util/safe_num.cpp
diff options
context:
space:
mode:
authorJacob Evans <jacob.evans@10gen.com>2019-01-29 13:47:34 -0500
committerJacob Evans <jacob.evans@10gen.com>2019-02-28 12:55:13 -0500
commit5fa4388a59fdcea46e8482cb41d0e2cba1c18c40 (patch)
treef0a5d1b85376b6e92e1285c5d7ab0c39839a325e /src/mongo/util/safe_num.cpp
parent812890b7952f65241c4ae9076d698cbcc9cd5bbd (diff)
downloadmongo-5fa4388a59fdcea46e8482cb41d0e2cba1c18c40.tar.gz
SERVER-38760 Serialize update commands to BSON
Diffstat (limited to 'src/mongo/util/safe_num.cpp')
-rw-r--r--src/mongo/util/safe_num.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/mongo/util/safe_num.cpp b/src/mongo/util/safe_num.cpp
index f02e603e773..ba506c0d8ba 100644
--- a/src/mongo/util/safe_num.cpp
+++ b/src/mongo/util/safe_num.cpp
@@ -160,6 +160,25 @@ bool SafeNum::isIdentical(const SafeNum& rhs) const {
}
}
+void SafeNum::toBSON(StringData fieldName, BSONObjBuilder* bob) const {
+ switch (_type) {
+ case BSONType::NumberInt:
+ bob->append(fieldName, _value.int32Val);
+ return;
+ case BSONType::NumberLong:
+ bob->append(fieldName, _value.int64Val);
+ return;
+ case BSONType::NumberDouble:
+ bob->append(fieldName, _value.doubleVal);
+ return;
+ case BSONType::NumberDecimal:
+ bob->append(fieldName, Decimal128(_value.decimalVal));
+ return;
+ default:
+ MONGO_UNREACHABLE;
+ }
+}
+
int64_t SafeNum::getInt64(const SafeNum& snum) {
switch (snum._type) {
case NumberInt: