28 #ifndef LIBRPC_QUERY_H 29 #define LIBRPC_QUERY_H 48 struct rpc_query_iter;
73 #define RPC_QUERY_CB(_fn, _arg) \ 74 ^(rpc_object_t _object) { \ 75 return ((rpc_object_t)_fn(_arg, _object)); \ 132 const char *_Nonnull path, _Nullable
rpc_object_t default_val);
244 _Nullable rpc_query_params_t params, _Nullable
rpc_object_t rules);
261 _Nonnull rpc_query_params_t params,
const char *_Nonnull rules_fmt, ...);
_Nullable rpc_query_iter_t rpc_query(_Nonnull rpc_object_t object, _Nullable rpc_query_params_t params, _Nullable rpc_object_t rules)
struct rpc_object * rpc_object_t
void rpc_query_delete(_Nonnull rpc_object_t object, const char *_Nonnull path)
_Nullable rpc_object_t(^ rpc_query_cb_t)(_Nonnull rpc_object_t object)
_Nullable rpc_query_iter_t rpc_query_fmt(_Nonnull rpc_object_t object, _Nonnull rpc_query_params_t params, const char *_Nonnull rules_fmt,...)
struct rpc_query_params * rpc_query_params_t
void rpc_query_iter_free(_Nonnull rpc_query_iter_t iter)
struct rpc_query_iter * rpc_query_iter_t
int(^ rpc_array_cmp_t)(_Nonnull rpc_object_t o1, _Nonnull rpc_object_t o2)
void rpc_query_set(_Nonnull rpc_object_t object, const char *_Nonnull path, _Nullable rpc_object_t value, bool steal)
bool rpc_query_next(_Nonnull rpc_query_iter_t iter, _Nonnull rpc_object_t *_Nullable chunk)
_Nullable rpc_object_t rpc_query_apply(_Nonnull rpc_object_t object, _Nonnull rpc_object_t rules)
_Nullable rpc_object_t rpc_query_get(_Nonnull rpc_object_t object, const char *_Nonnull path, _Nullable rpc_object_t default_val)
bool rpc_query_contains(_Nonnull rpc_object_t object, const char *_Nonnull path)