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_;
182 friend class storages::mongo::impl::cdriver::CDriverCollectionImpl;
185 static constexpr size_t kSize = 96;
186 static constexpr size_t kAlignment = 8;
188 utils::FastPimpl<Impl, kSize, kAlignment,
false> impl_;
194 enum class Mode { kSingle, kMulti };
200 Update(
Update&&)
noexcept;
215 friend class storages::mongo::impl::cdriver::CDriverCollectionImpl;
218 static constexpr size_t kSize = 96;
219 static constexpr size_t kAlignment = 8;
221 utils::FastPimpl<Impl, kSize, kAlignment,
false> impl_;
227 enum class Mode { kSingle, kMulti };
233 Delete(
Delete&&)
noexcept;
245 friend class storages::mongo::impl::cdriver::CDriverCollectionImpl;
248 static constexpr size_t kSize = 80;
249 static constexpr size_t kAlignment = 8;
251 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_;