1#ifndef _DITTO_DOCUMENT_ID_
2#define _DITTO_DOCUMENT_ID_
4#include "DocumentIdPath.hpp"
12#include "dittoffi.hpp"
24 friend class DocumentOperator;
26 friend class QueryOperator;
28 friend struct DocumentIdHasher;
112 std::vector<uint8_t> id_bytes;
114 std::string formatted_for_query_string(
115 StringPrimitiveFormat_t string_primitive_format)
const;
118 explicit DocumentId(std::vector<uint8_t> id_bytes);
127struct DocumentIdHasher {
128 std::size_t operator()(
const DocumentId &k)
const {
131 std::size_t seed = k.id_bytes.size();
132 for (
auto &i : k.id_bytes) {
133 seed ^= i + 0x9e3779b9 + (seed << 6) + (seed >> 2);
A reference to a collection in a Store.
Definition: Collection.hpp:26
A document belonging to a Collection with an inner value and an identifier (DocumentId).
Definition: Document.hpp:17
Provides an interface to specify a path to a key in a document ID that you can then call a function o...
Definition: DocumentIdPath.hpp:22
These objects are returned when using Collection::find_by_id functionality.
Definition: PendingIDSpecificOperation.hpp:40
ScopedWriteTransaction exposes functionality that allows you to perform multiple operations on the st...
Definition: ScopedWriteTransaction.hpp:23
basic_json<> json
default JSON class
Definition: json.hpp:2933
An identifier for a Document.
Definition: DocumentId.hpp:21
DocumentIdPath operator[](std::string key) const
Used to specify a path to a key in the document ID that you can subscript further to access a nested ...
Definition: DocumentId.cpp:35
bool empty() const
Returns whether or not the document ID is empty (and therefore invalid).
Definition: DocumentId.cpp:43
std::string to_string() const
Returns a stringified representation of a document identifier.
Definition: DocumentId.cpp:47
nlohmann::json value() const
Get the underlying value of the document identifier as a native type.
Definition: DocumentId.cpp:45
DocumentId(nlohmann::json id_value)
Creates a new DocumentId.