-module(erlang_ds_dict). -behavior(erlang_ds_type_handler). -export([ type/0, is_type/1, set/3, get/3, has_key/2, delete/2, filter/2, to_list/1, from_list/1 ]). type() -> dict. is_type(Obj) -> try dict:size(Obj) of _ -> true catch _:_ -> false end. set(Obj, Key, Val) -> dict:store(Key, Val, Obj). get(Obj, Key, Default) -> case dict:find(Key, Obj) of {ok, Val} -> Val; error -> Default end. has_key(Obj, Key) -> dict:is_key(Key, Obj). delete(Obj, Key) -> dict:erase(Key, Obj). filter(Obj, FilterFun) -> dict:filter(FilterFun, Obj). to_list(Obj) -> dict:to_list(Obj). from_list(Obj) -> dict:from_list(Obj).