7namespace Stroika::Foundation::Database::Document::Collection {
14 inline Ptr::Ptr (
const shared_ptr<IRep>& src)
18 inline Ptr& Ptr::operator= (
const Ptr& src)
20 inherited::operator= (src);
23 inline Ptr& Ptr::operator= (Ptr&& src)
noexcept
25 inherited::operator= (src);
28 inline auto Ptr::operator== (
const Ptr& rhs)
const
30 return get () == rhs.get ();
32 inline bool Ptr::operator== (nullptr_t)
const noexcept
34 return this->get () ==
nullptr;
38 using namespace Characters;
39 return Format (
"{}"_f,
static_cast<const void*
> (this->get ()));
43 return this->get ()->Add (v);
45 inline optional<Document> Ptr::GetOne (
const IDType&
id,
const optional<Projection>& projection)
47 return this->get ()->GetOne (
id, projection);
49 inline Document Ptr::GetOneOrThrow (
const IDType&
id,
const optional<Projection>& projection)
52 return Memory::ValueOfOrThrow (GetOne (
id, projection), kExcept_);
54 inline Sequence<Document> Ptr::GetAll (
const optional<Filter>& filter,
const optional<Projection>& projection)
56 return this->get ()->GetAll (filter, projection);
62 return d.LookupChecked (kID, kExcept_).
As<
String> ();
65 inline void Ptr::Replace (
const Document& newV)
67 Replace (Memory::ValueOf (newV.
Lookup (kID)).As<
String> (), newV);
71 this->get ()->Update (
id, newV, nullopt);
79 Update (Memory::ValueOf (newV.
Lookup (kID)).As<
String> (), newV, onlyTheseFields);
85 inline void Ptr::Update (
const IDType&
id,
const Document& newV,
const Set<String>& onlyTheseFields)
87 this->get ()->Update (
id, newV, onlyTheseFields);
89 inline void Ptr::Remove (
const IDType&
id)
91 this->get ()->Remove (
id);
String is like std::u32string, except it is much easier to use, often much more space efficient,...
nonvirtual optional< mapped_type > Lookup(ArgByValueType< key_type > key) const
nonvirtual Iterable< key_type > Keys() const
A generalization of a vector: a container whose elements are keyed by the natural numbers.
nonvirtual RESULT_CONTAINER Map(ELEMENT_MAPPER &&elementMapper) const
'override' Iterable<>::Map () function so RESULT_CONTAINER defaults to Sequence, and improve that cas...
Set<T> is a container of T, where once an item is added, additionally adds () do nothing.