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.