60 enum class Exist { kAddAlways, kAddIfNotExist, kAddIfExist };
61 enum class Compare { kNone, kGreaterThan, kLessThan };
62 enum class ReturnValue { kAddedCount, kChangedCount };
64 ZaddOptions() =
default;
65 constexpr ZaddOptions(
67 ReturnValue return_value = ReturnValue::kAddedCount,
68 Compare compare = Compare::kNone
70 : exist(exist), compare(compare), return_value(return_value) {}
71 constexpr ZaddOptions(Exist exist, Compare compare, ReturnValue return_value = ReturnValue::kAddedCount)
72 : exist(exist), compare(compare), return_value(return_value) {}
74 constexpr ZaddOptions(ReturnValue return_value, Exist exist = Exist::kAddAlways, Compare compare = Compare::kNone)
75 : exist(exist), compare(compare), return_value(return_value) {}
76 constexpr ZaddOptions(ReturnValue return_value, Compare compare, Exist exist = Exist::kAddAlways)
77 : exist(exist), compare(compare), return_value(return_value) {}
79 constexpr ZaddOptions(
81 Exist exist = Exist::kAddAlways,
82 ReturnValue return_value = ReturnValue::kAddedCount
84 : exist(exist), compare(compare), return_value(return_value) {}
85 constexpr ZaddOptions(Compare compare, ReturnValue return_value, Exist exist = Exist::kAddAlways)
86 : exist(exist), compare(compare), return_value(return_value) {}
88 Exist exist = Exist::kAddAlways;
89 Compare compare = Compare::kNone;
90 ReturnValue return_value = ReturnValue::kAddedCount;
138 using Match = storages::
redis::Match;
139 using Count = storages::
redis::Count;
141 ScanOptionsGeneric() =
default;
149 template <
typename... Args>
150 ScanOptionsGeneric(Args... args) {
151 (Apply(std::move(args)), ...);
154 const std::optional<Match>& GetMatchOptional()
const noexcept {
return pattern_; }
156 const std::optional<Count>& GetCountOptional()
const noexcept {
return count_; }
158 std::optional<Match> ExtractMatch()
noexcept {
return std::move(pattern_); }
160 std::optional<Count> ExtractCount()
noexcept {
return std::move(count_); }
163 void Apply(Match pattern) {
165 pattern_ = std::move(pattern);
168 void Apply(Count count) {
173 std::optional<Match> pattern_;
174 std::optional<Count> count_;