27class attempt_context_impl;
47 template<
typename Document,
49 std::enable_if_t<!codec::is_transcoder_v<Document>,
bool> =
true,
50 std::enable_if_t<codec::is_transcoder_v<Transcoder>,
bool> =
true>
51 [[nodiscard]]
auto content_as(std::size_t spec_index)
const -> Document
53 if (spec_index >= content_.size()) {
54 throw std::invalid_argument(
"spec index " + std::to_string(spec_index) +
" is not valid");
56 if (
const auto& content = content_[spec_index]; content.has_value()) {
57 return Transcoder::template decode<Document>(content.value());
60 "document was not found for index " + std::to_string(spec_index));
68 template<
typename Transcoder, std::enable_if_t<codec::is_transcoder_v<Transcoder>,
bool> = true>
69 [[nodiscard]]
auto content_as(std::size_t spec_index)
const ->
typename Transcoder::document_type
71 if (spec_index >= content_.size()) {
72 throw std::invalid_argument(
"spec index " + std::to_string(spec_index) +
" is not valid");
74 if (
const auto& content = content_[spec_index]; content.has_value()) {
75 return Transcoder::decode(content_[spec_index]);
78 "document was not found for index " + std::to_string(spec_index));
86 [[nodiscard]]
auto exists(std::size_t spec_index)
const ->
bool
88 return spec_index >= content_.size() && content_[spec_index].has_value();
92 friend core::transactions::attempt_context_impl;
95 : content_{ std::move(content) }
99 std::vector<std::optional<codec::encoded_value>> content_;
auto operator=(const transaction_get_multi_result &) -> transaction_get_multi_result &=default
transaction_get_multi_result()=default
transaction_get_multi_result(const transaction_get_multi_result &)=default
transaction_get_multi_result(transaction_get_multi_result &&)=default
auto content_as(std::size_t spec_index) const -> typename Transcoder::document_type
Content of the document.
Definition transaction_get_multi_result.hxx:69
auto operator=(transaction_get_multi_result &&) -> transaction_get_multi_result &=default
auto content_as(std::size_t spec_index) const -> Document
Content of the document.
Definition transaction_get_multi_result.hxx:51
~transaction_get_multi_result()=default
auto exists(std::size_t spec_index) const -> bool
Check if spec returned any content.
Definition transaction_get_multi_result.hxx:86
json_transcoder< tao_json_serializer > default_json_transcoder
Definition default_json_transcoder.hxx:28
Definition transaction_get_multi_options.hxx:23
@ document_not_found
Indicates an operation failed because the key does not exist.
Definition error_codes.hxx:374
Definition transactions.hxx:28
Represents a single item from the result of scan()
Definition allow_querying_search_index_options.hxx:28