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;
41 friend class storages::mongo::impl::cdriver::CDriverCollectionImpl;
44 static constexpr size_t kSize = 96;
45 static constexpr size_t kAlignment = 8;
47 utils::FastPimpl<Impl, kSize, kAlignment,
false> impl_;
69 friend class storages::mongo::impl::cdriver::CDriverCollectionImpl;
72 static constexpr size_t kSize = 72;
73 static constexpr size_t kAlignment = 8;
75 utils::FastPimpl<Impl, kSize, kAlignment,
false> impl_;
85 Find(
Find&&)
noexcept;
103 friend class storages::mongo::impl::cdriver::CDriverCollectionImpl;
106 static constexpr size_t kSize = 96;
107 static constexpr size_t kAlignment = 8;
109 utils::FastPimpl<Impl, kSize, kAlignment,
false> impl_;
128 friend class storages::mongo::impl::cdriver::CDriverCollectionImpl;
131 static constexpr size_t kSize = 80;
132 static constexpr size_t kAlignment = 8;
134 utils::FastPimpl<Impl, kSize, kAlignment,
false> impl_;
141 explicit InsertMany(std::vector<formats::bson::Document> documents);
157 friend class storages::mongo::impl::cdriver::CDriverCollectionImpl;
160 static constexpr size_t kSize = 88;
161 static constexpr size_t kAlignment = 8;
163 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 };
201 Update(
Update&&)
noexcept;
216 friend class storages::mongo::impl::cdriver::CDriverCollectionImpl;
219 static constexpr size_t kSize = 96;
220 static constexpr size_t kAlignment = 8;
222 utils::FastPimpl<Impl, kSize, kAlignment,
false> impl_;
228 enum class Mode { kSingle, kMulti };
234 Delete(
Delete&&)
noexcept;
243 friend class storages::mongo::impl::cdriver::CDriverCollectionImpl;
246 static constexpr size_t kSize = 80;
247 static constexpr size_t kAlignment = 8;
249 utils::FastPimpl<Impl, kSize, kAlignment,
false> impl_;
274 friend class storages::mongo::impl::cdriver::CDriverCollectionImpl;
277 static constexpr size_t kSize = 80;
278 static constexpr size_t kAlignment = 8;
280 utils::FastPimpl<Impl, kSize, kAlignment,
false> impl_;
301 friend class storages::mongo::impl::cdriver::CDriverCollectionImpl;
304 static constexpr size_t kSize = 72;
305 static constexpr size_t kAlignment = 8;
307 utils::FastPimpl<Impl, kSize, kAlignment,
false> impl_;
331 friend class storages::mongo::impl::cdriver::CDriverCollectionImpl;
334 static constexpr size_t kSize = 120;
335 static constexpr size_t kAlignment = 8;
337 utils::FastPimpl<Impl, kSize, kAlignment,
false> impl_;
346 Drop(
Drop&&)
noexcept;
354 friend class storages::mongo::impl::cdriver::CDriverCollectionImpl;
357 static constexpr size_t kSize = 56;
358 static constexpr size_t kAlignment = 8;
360 utils::FastPimpl<Impl, kSize, kAlignment,
false> impl_;