6#include <userver/formats/bson/document.hpp>
7#include <userver/formats/bson/value.hpp>
8#include <userver/storages/mongo/options.hpp>
9#include <userver/utils/fast_pimpl.hpp>
11USERVER_NAMESPACE_BEGIN
13namespace storages::mongo::impl::cdriver {
14class CDriverCollectionImpl;
27 Count(
Count&&)
noexcept;
40 friend class storages::mongo::impl::cdriver::CDriverCollectionImpl;
43 static constexpr size_t kSize = 96;
44 static constexpr size_t kAlignment = 8;
46 utils::FastPimpl<Impl, kSize, kAlignment,
false> impl_;
68 friend class storages::mongo::impl::cdriver::CDriverCollectionImpl;
71 static constexpr size_t kSize = 72;
72 static constexpr size_t kAlignment = 8;
74 utils::FastPimpl<Impl, kSize, kAlignment,
false> impl_;
84 Find(
Find&&)
noexcept;
102 friend class storages::mongo::impl::cdriver::CDriverCollectionImpl;
105 static constexpr size_t kSize = 96;
106 static constexpr size_t kAlignment = 8;
108 utils::FastPimpl<Impl, kSize, kAlignment,
false> impl_;
127 friend class storages::mongo::impl::cdriver::CDriverCollectionImpl;
130 static constexpr size_t kSize = 80;
131 static constexpr size_t kAlignment = 8;
133 utils::FastPimpl<Impl, kSize, kAlignment,
false> impl_;
140 explicit InsertMany(std::vector<formats::bson::Document> documents);
156 friend class storages::mongo::impl::cdriver::CDriverCollectionImpl;
159 static constexpr size_t kSize = 88;
160 static constexpr size_t kAlignment = 8;
162 utils::FastPimpl<Impl, kSize, kAlignment,
false> impl_;
183 friend class storages::mongo::impl::cdriver::CDriverCollectionImpl;
186 static constexpr size_t kSize = 96;
187 static constexpr size_t kAlignment = 8;
189 utils::FastPimpl<Impl, kSize, kAlignment,
false> impl_;
195 enum class Mode { kSingle, kMulti };
202 Update(
Update&&)
noexcept;
217 friend class storages::mongo::impl::cdriver::CDriverCollectionImpl;
220 static constexpr size_t kSize = 96;
221 static constexpr size_t kAlignment = 8;
223 utils::FastPimpl<Impl, kSize, kAlignment,
false> impl_;
229 enum class Mode { kSingle, kMulti };
235 Delete(
Delete&&)
noexcept;
244 friend class storages::mongo::impl::cdriver::CDriverCollectionImpl;
247 static constexpr size_t kSize = 80;
248 static constexpr size_t kAlignment = 8;
250 utils::FastPimpl<Impl, kSize, kAlignment,
false> impl_;
276 friend class storages::mongo::impl::cdriver::CDriverCollectionImpl;
279 static constexpr size_t kSize = 80;
280 static constexpr size_t kAlignment = 8;
282 utils::FastPimpl<Impl, kSize, kAlignment,
false> impl_;
303 friend class storages::mongo::impl::cdriver::CDriverCollectionImpl;
306 static constexpr size_t kSize = 72;
307 static constexpr size_t kAlignment = 8;
309 utils::FastPimpl<Impl, kSize, kAlignment,
false> impl_;
315 explicit Aggregate(formats::
bson::
Value pipeline);
333 friend class storages::mongo::impl::cdriver::CDriverCollectionImpl;
336 static constexpr size_t kSize = 120;
337 static constexpr size_t kAlignment = 8;
339 utils::FastPimpl<Impl, kSize, kAlignment,
false> impl_;
348 Drop(
Drop&&)
noexcept;
356 friend class storages::mongo::impl::cdriver::CDriverCollectionImpl;
359 static constexpr size_t kSize = 56;
360 static constexpr size_t kAlignment = 8;
362 utils::FastPimpl<Impl, kSize, kAlignment,
false> impl_;