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_force_put/3,
|
||||||
deep_remove/2,
|
deep_remove/2,
|
||||||
deep_merge/2,
|
deep_merge/2,
|
||||||
|
binary_key_map/1,
|
||||||
safe_atom_key_map/1,
|
safe_atom_key_map/1,
|
||||||
unsafe_atom_key_map/1,
|
unsafe_atom_key_map/1,
|
||||||
jsonable_map/1,
|
jsonable_map/1,
|
||||||
|
@ -153,6 +154,17 @@ deep_convert(Val, _, _Args) ->
|
||||||
unsafe_atom_key_map(Map) ->
|
unsafe_atom_key_map(Map) ->
|
||||||
covert_keys_to_atom(Map, fun(K) -> binary_to_atom(K, utf8) end).
|
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()}.
|
-spec safe_atom_key_map(#{binary() | atom() => any()}) -> #{atom() => any()}.
|
||||||
safe_atom_key_map(Map) ->
|
safe_atom_key_map(Map) ->
|
||||||
covert_keys_to_atom(Map, fun(K) -> binary_to_existing_atom(K, utf8) end).
|
covert_keys_to_atom(Map, fun(K) -> binary_to_existing_atom(K, utf8) end).
|
||||||
|
|
Loading…
Reference in New Issue