emqx/include/emqx_misc.hrl
2018-02-28 21:22:39 +08:00

14 lines
440 B
Erlang

-define(record_to_map(Def, Rec),
maps:from_list(?record_to_proplist(Def, Rec))).
-define(record_to_map(Def, Rec, Fields),
maps:from_list(?record_to_proplist(Def, Rec, Fields))).
-define(record_to_proplist(Def, Rec),
lists:zip(record_info(fields, Def), tl(tuple_to_list(Rec)))).
-define(record_to_proplist(Def, Rec, Fields),
[{K, V} || {K, V} <- ?record_to_proplist(Def, Rec), lists:member(K, Fields)]).