Dict.Behaviour
Default implementations for some required functions in the Dict module.
This module makes it easier to create your own Dict compliant
module, by providing default implementations for some required functions.
Example
defmodule MyDict do
use Dict.Behaviour
# implement required functions (see below)
# override default implementations if needed
end
The client module must contain the following functions:
delete/2fetch/2put/3reduce/3size/1update/4
All of which are part of the Dict behaviour, so no extra functions are
actually required.
Based on these functions, Dict.Behaviour generates default implementations
for the following functions:
drop/2equal?/2fetch!/2get/2get/3has_key?/2keys/1merge/2merge/3put_new/3take/2to_list/1values/1
All of these functions are defined as overridable, so you can provide your own implementation if needed.
Note you can also test your custom module via Dict's doctests:
defmodule MyDict do
def new(keywords \ []) do
...
end
end
defmodule MyTests do
use ExUnit.Case
doctest Dict
defp dict_impl, do: MyDict
end