23#include <system_error>
30class attempt_context_impl;
53 template<
typename Document,
55 std::enable_if_t<!codec::is_transcoder_v<Document>,
bool> =
true,
56 std::enable_if_t<codec::is_transcoder_v<Transcoder>,
bool> =
true>
57 [[nodiscard]]
auto content_as(std::size_t spec_index)
const -> Document
59 if (spec_index >= content_.size()) {
60 throw std::invalid_argument(
"spec index " + std::to_string(spec_index) +
" is not valid");
62 if (
const auto& content = content_[spec_index]; content.has_value()) {
63 return Transcoder::template decode<Document>(content.value());
66 "document was not found for index " + std::to_string(spec_index));
74 template<
typename Transcoder, std::enable_if_t<codec::is_transcoder_v<Transcoder>,
bool> = true>
75 [[nodiscard]]
auto content_as(std::size_t spec_index)
const ->
typename Transcoder::document_type
77 if (spec_index >= content_.size()) {
78 throw std::invalid_argument(
"spec index " + std::to_string(spec_index) +
" is not valid");
80 if (
const auto& content = content_[spec_index]; content.has_value()) {
81 return Transcoder::decode(content.value());
84 "document was not found for index " + std::to_string(spec_index));
92 [[nodiscard]]
auto exists(std::size_t spec_index)
const ->
bool
94 return spec_index >= content_.size() && content_[spec_index].has_value();
98 friend core::transactions::attempt_context_impl;
101 std::vector<std::optional<codec::encoded_value>> content)
102 : content_{ std::move(content) }
106 std::vector<std::optional<codec::encoded_value>> content_;
~transaction_get_multi_replicas_from_preferred_server_group_result()=default
auto content_as(std::size_t spec_index) const -> typename Transcoder::document_type
Content of the document.
Definition transaction_get_multi_replicas_from_preferred_server_group_result.hxx:75
auto operator=(transaction_get_multi_replicas_from_preferred_server_group_result &&) -> transaction_get_multi_replicas_from_preferred_server_group_result &=default
transaction_get_multi_replicas_from_preferred_server_group_result(transaction_get_multi_replicas_from_preferred_server_group_result &&)=default
transaction_get_multi_replicas_from_preferred_server_group_result(const transaction_get_multi_replicas_from_preferred_server_group_result &)=default
auto content_as(std::size_t spec_index) const -> Document
Content of the document.
Definition transaction_get_multi_replicas_from_preferred_server_group_result.hxx:57
auto exists(std::size_t spec_index) const -> bool
Check if spec returned any content.
Definition transaction_get_multi_replicas_from_preferred_server_group_result.hxx:92
auto operator=(const transaction_get_multi_replicas_from_preferred_server_group_result &) -> transaction_get_multi_replicas_from_preferred_server_group_result &=default
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