aboutsummaryrefslogtreecommitdiffhomepage
path: root/Firestore/core/src/firebase/firestore/model
diff options
context:
space:
mode:
authorGravatar rsgowman <rgowman@google.com>2018-02-22 09:42:40 -0500
committerGravatar GitHub <noreply@github.com>2018-02-22 09:42:40 -0500
commit6ce954a791a73abc8d32765e2695ed153e120c47 (patch)
treee9fe172b309156e2e4bc147c0452ea712a0102b5 /Firestore/core/src/firebase/firestore/model
parent41dcd4bd17708779b45982d9547215924f2e5fd5 (diff)
Serialize (and deserialize) int64 values (#818) (#829)
Diffstat (limited to 'Firestore/core/src/firebase/firestore/model')
-rw-r--r--Firestore/core/src/firebase/firestore/model/field_value.cc12
-rw-r--r--Firestore/core/src/firebase/firestore/model/field_value.h8
2 files changed, 13 insertions, 7 deletions
diff --git a/Firestore/core/src/firebase/firestore/model/field_value.cc b/Firestore/core/src/firebase/firestore/model/field_value.cc
index 012a90d..03cf1d4 100644
--- a/Firestore/core/src/firebase/firestore/model/field_value.cc
+++ b/Firestore/core/src/firebase/firestore/model/field_value.cc
@@ -45,9 +45,9 @@ namespace {
*/
bool Comparable(Type lhs, Type rhs) {
switch (lhs) {
- case Type::Long:
+ case Type::Integer:
case Type::Double:
- return rhs == Type::Long || rhs == Type::Double;
+ return rhs == Type::Integer || rhs == Type::Double;
case Type::Timestamp:
case Type::ServerTimestamp:
return rhs == Type::Timestamp || rhs == Type::ServerTimestamp;
@@ -78,7 +78,7 @@ FieldValue& FieldValue::operator=(const FieldValue& value) {
case Type::Boolean:
boolean_value_ = value.boolean_value_;
break;
- case Type::Long:
+ case Type::Integer:
integer_value_ = value.integer_value_;
break;
case Type::Double:
@@ -179,7 +179,7 @@ const FieldValue& FieldValue::NanValue() {
FieldValue FieldValue::IntegerValue(int64_t value) {
FieldValue result;
- result.SwitchTo(Type::Long);
+ result.SwitchTo(Type::Integer);
result.integer_value_ = value;
return result;
}
@@ -304,8 +304,8 @@ bool operator<(const FieldValue& lhs, const FieldValue& rhs) {
return false;
case Type::Boolean:
return Comparator<bool>()(lhs.boolean_value_, rhs.boolean_value_);
- case Type::Long:
- if (rhs.type() == Type::Long) {
+ case Type::Integer:
+ if (rhs.type() == Type::Integer) {
return Comparator<int64_t>()(lhs.integer_value_, rhs.integer_value_);
} else {
return util::CompareMixedNumber(rhs.double_value_,
diff --git a/Firestore/core/src/firebase/firestore/model/field_value.h b/Firestore/core/src/firebase/firestore/model/field_value.h
index e547be3..15945b9 100644
--- a/Firestore/core/src/firebase/firestore/model/field_value.h
+++ b/Firestore/core/src/firebase/firestore/model/field_value.h
@@ -28,6 +28,7 @@
#include "Firestore/core/src/firebase/firestore/model/database_id.h"
#include "Firestore/core/src/firebase/firestore/model/document_key.h"
#include "Firestore/core/src/firebase/firestore/model/timestamp.h"
+#include "Firestore/core/src/firebase/firestore/util/firebase_assert.h"
namespace firebase {
namespace firestore {
@@ -63,7 +64,7 @@ class FieldValue {
enum class Type {
Null, // Null
Boolean, // Boolean
- Long, // Number type starts here
+ Integer, // Number type starts here
Double,
Timestamp, // Timestamp type starts here
ServerTimestamp,
@@ -95,6 +96,11 @@ class FieldValue {
return tag_;
}
+ int64_t integer_value() const {
+ FIREBASE_ASSERT(tag_ == Type::Integer);
+ return integer_value_;
+ }
+
/** factory methods. */
static const FieldValue& NullValue();
static const FieldValue& TrueValue();