* Remove stale references to DatabaseId
* Have Firestore take the DatabaseId directly
* Allow tests to default the database implicitly
* Have FSTSerializerBeta take DatabaseId by value
* Have FSTUserDataConverter take DatabaseId by value
* Make FIRFirestore.databaseID a const reference
* Make FSTFirestoreClient.databaseID a const reference
* Have FSTReferenceValue take DatabaseId by value
* Have DatabaseInfo take DatabaseId by value
* Have Serializer take DatabaseId by value
* Fix C++ ReferenceValue
* Take DatabaseId by value
* Reverse order to match Android
* Rename `reference` to `key`
* Fix endianness detection in OrderedCode
(and prevent further regression.)
* Use static_assert for constant checks
* Add a benchmark for SkipToNextSpecialByte
* Move string_apple_benchmark next to string_apple_test
* Accept non-const references in benchmark functions
This is a port of cl/132348268.
* Adjust Xcode project
* Add GoogleBenchmark as a dependency
Also eliminate most usages of `FSTDocumentKey`, remove most methods from the Objective-C class and make it just a wrapper over `DocumentKey`. The only usage that cannot be directly replaced by C++ `DocumentKey` is in `FSTFieldValue`.
* Add a MakeStringView benchmark
Turns out this is worse than just creating a std::string:
BM_MakeString 29 ns 29 ns 189065849
BM_MakeStringView 59 ns 59 ns 93013367
* Convert database_id to take std::string
* Convert DatabaseInfo to take std::string
* Convert User to take std::string
* Convert Token to take std::string
* Convert MakeStringView([NSString stringWithFormat:]) to StringFormat
* Migrate to LevelDbVersionKey
* Migrate to LevelDbMutationKey
* Migrate to LevelDbDocumentMutationKey
* Migrate to LevelDbMutationQueueKey
* Migrate to LevelDbTargetGlobalKey
* Migrate to LevelDbTargetKey
* Migrate to LevelDbQueryTargetKey
* Migrate to LevelDbTargetDocumentKey
* Migrate to LevelDbDocumentTargetKey
* Migrate to LevelDbRemoteDocumentKey
Also:
- Remove FSTLevelDBKey and tests
- Remove StringView and tests
* Step one of benchmarking
* Benchmark writing to leveldb
* Comment out and style
* More comments
* Fix warnings
* Someday I will lint as good as computer
* Some light commenting and static-ing
* It seems to be working?
* Remove unused test file
* Drop commented-out deps
* Revert string quoting in pbxproj file
* Drop reference to deleted file
* Move podspec, fix import
* Lots of C++ style changes
* Style
* Drop whitespace