feat(emqx_map_lib): add a binary_key_map help function
This commit is contained in:
parent
dd82899118
commit
6f67e3b333
|
@ -23,6 +23,7 @@
|
|||
deep_force_put/3,
|
||||
deep_remove/2,
|
||||
deep_merge/2,
|
||||
binary_key_map/1,
|
||||
safe_atom_key_map/1,
|
||||
unsafe_atom_key_map/1,
|
||||
jsonable_map/1,
|
||||
|
@ -153,6 +154,17 @@ deep_convert(Val, _, _Args) ->
|
|||
unsafe_atom_key_map(Map) ->
|
||||
covert_keys_to_atom(Map, fun(K) -> binary_to_atom(K, utf8) end).
|
||||
|
||||
-spec binary_key_map(map()) -> map().
|
||||
binary_key_map(Map) ->
|
||||
deep_convert(
|
||||
Map,
|
||||
fun
|
||||
(K, V) when is_atom(K) -> {atom_to_binary(K, utf8), V};
|
||||
(K, V) when is_binary(K) -> {K, V}
|
||||
end,
|
||||
[]
|
||||
).
|
||||
|
||||
-spec safe_atom_key_map(#{binary() | atom() => any()}) -> #{atom() => any()}.
|
||||
safe_atom_key_map(Map) ->
|
||||
covert_keys_to_atom(Map, fun(K) -> binary_to_existing_atom(K, utf8) end).
|
||||
|
|
Loading…
Reference in New Issue