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;
242 friend class storages::mongo::impl::cdriver::CDriverCollectionImpl;
245 static constexpr size_t kSize = 80;
246 static constexpr size_t kAlignment = 8;
248 utils::FastPimpl<Impl, kSize, kAlignment,
false> impl_;
273 friend class storages::mongo::impl::cdriver::CDriverCollectionImpl;
276 static constexpr size_t kSize = 80;
277 static constexpr size_t kAlignment = 8;
279 utils::FastPimpl<Impl, kSize, kAlignment,
false> impl_;
300 friend class storages::mongo::impl::cdriver::CDriverCollectionImpl;
303 static constexpr size_t kSize = 72;
304 static constexpr size_t kAlignment = 8;
306 utils::FastPimpl<Impl, kSize, kAlignment,
false> impl_;
312 explicit Aggregate(formats::
bson::
Value pipeline);
330 friend class storages::mongo::impl::cdriver::CDriverCollectionImpl;
333 static constexpr size_t kSize = 120;
334 static constexpr size_t kAlignment = 8;
336 utils::FastPimpl<Impl, kSize, kAlignment,
false> impl_;
345 Drop(
Drop&&)
noexcept;
353 friend class storages::mongo::impl::cdriver::CDriverCollectionImpl;
356 static constexpr size_t kSize = 56;
357 static constexpr size_t kAlignment = 8;
359 utils::FastPimpl<Impl, kSize, kAlignment,
false> impl_;