30 namespace graphene {
namespace protocol {
34 using Op =
typename decltype(t)::type;
35 if (typelist::contains<operation_list_1::list, Op>())
37 if (typelist::contains<operation_list_2::list, Op>())
39 if (typelist::contains<operation_list_3::list, Op>())
41 if (typelist::contains<operation_list_5::list, Op>())
43 if (typelist::contains<operation_list_6::list, Op>())
45 if (typelist::contains<operation_list_9::list, Op>())
47 if (typelist::contains<operation_list_10::list, Op>())
49 if (typelist::contains<operation_list_11::list, Op>())
51 if (typelist::contains<unsupported_operations_list::list, Op>())
63 "LOGIC ERROR: Operation type not handled by custom authorities implementation. "
64 "Please report this error.");
69 return [f=std::move(f)](
const operation& op) {
return f(op).reverse_path(); };
76 if (indicator.is_type<vector<predicate_result>>()) {
77 auto& results = indicator.get<vector<predicate_result>>();
90 static_assert(!is_container<int>,
"");
91 static_assert(is_container<vector<int>>,
"");
92 static_assert(is_container<flat_set<int>>,
"");
93 static_assert(is_container<string>,
"");
94 static_assert(is_flat_set<flat_set<int>>,
"");
95 static_assert(!is_flat_set<vector<int>>,
"");
106 static_assert(
predicate_eq<vector<bool>, int64_t>::valid ==
true,
"");
107 static_assert(
predicate_eq<flat_set<char>, int64_t>::valid ==
true,
"");
114 static_assert(
predicate_eq<flat_set<bool>, flat_set<bool>>::valid ==
true,
"");
115 static_assert(
predicate_eq<flat_set<bool>,
string>::valid ==
false,
"");
121 static_assert(
predicate_ne<vector<bool>, int64_t>::valid ==
true,
"");
122 static_assert(
predicate_ne<flat_set<char>, int64_t>::valid ==
true,
"");
157 static_assert(
predicate_lt<vector<int>, int64_t>::valid ==
false,
"");
163 static_assert(
predicate_in<
int, flat_set<string>>::valid ==
false,
"");
164 static_assert(
predicate_in<
string, flat_set<string>>::valid ==
true,
"");
165 static_assert(
predicate_in<flat_set<string>, flat_set<string>>::valid ==
false,
"");
169 static_assert(
predicate_not_in<
string, flat_set<string>>::valid ==
true,
"");
170 static_assert(
predicate_not_in<flat_set<string>, flat_set<string>>::valid ==
false,
"");
176 static_assert(
predicate_has_all<flat_set<string>, flat_set<string>>::valid ==
true,
"");
182 static_assert(
predicate_has_none<flat_set<string>, flat_set<string>>::valid ==
true,
"");