DelegateAccess
Delegates Access callbacks to other modules.
It's a small macro, but handy if your codebase is filled with structs.
Usage
defmodule MyModule do
defstruct [:foo, :bar]
use DelegateAccess, to: Map
endis sugar for
defmodule MyModule do
defstruct [:foo, :bar]
@behaviour Access
defdelegate fetch(conf, key), to: Map
defdelegate get(conf, key), to: Map
defdelegate get(conf, key, default), to: Map
defdelegate get_and_update(conf, key, fun), to: Map
defdelegate pop(conf, key), to: Map
defdelegate pop(conf, key, default), to: Map
defoverridable [fetch: 2, get: 3, get_and_update: 3, pop: 2]
endYou can also mix and match.
defmodule MyModule do
defstruct [:foo, :bar]
use DelegateAccess, to: Map, only: [fetch: 2]
use DelegateAccess, to: Keyword, only: [get: 3]
endInstallation
def deps do
[
{:delegate_access, "~> 0.1.0"}
]
end