9 #ifndef FIL_COMPARISON_H 10 #define FIL_COMPARISON_H 89 const Json &elem_in_data,
113 const std::tuple<Str,Str,Json> &compare_expr_);
128 const Vec<std::tuple<Str,Str,Json>> &compare_expr_list_);
FilComparison(const std::tuple< Str, Str, Json > &compare_expr_)
Constructor of FilComparison class with one criterion.
virtual void compute_impl(Json &data, JsonToVoidFunc check_required_keys, JsonToBoolFunc check_optional_keys) override
This method overrides Updater::compute_impl.
This file has a definition of Filter class, which is a subclass of Updater class. ...
Filter removes elements from array Element::data if the elements fail user-defined criteria...
std::function< bool(const Json &)> JsonToBoolFunc
An alias for a function accepts a Json object and returns a bool.
FilComparison applies a filter defined by comparison operators.
std::string Str
Str is an alias for string.
const JsonToBoolFunc make_compare_func(const Str &oper, const Json &rval)
Make a JsonToBoolFunc object from a comparison operator and a right side value.
nlohmann::json Json
Json is an alias for nlohmann::json.
std::vector< T > Vec
Vec is an alias for vector (same as list in Python).
const CompareFuncs make_compare_func_list()
Convert tuples in compare_expr_list to pairs of a string key and JsonToBoolFunc.
const bool check_if_pass_data_elem(const Json &elem_in_data, const CompareFuncs &compare_func_list)
Check if an element in data array can pass this filter.
Vec< std::tuple< Str, Str, Json > > compare_expr_list
std::function< void(const Json &)> JsonToVoidFunc
An alias for a function accepts a Json object.
Vec< std::pair< Str, JsonToBoolFunc > > CompareFuncs
An alias for Vec containing comparing functions.