Inherit behaviour from Map to implement Access

Hey everyone. I’m trying to use my own struct (as a extension of map) in my code but I would really love to use the Methods from the Access behaviour. Is there an easy way to achieve this?

defmodule SemanticConcept do
  @behaviour Access

  @derive [Poison.Encoder]
  defstruct [:text, :offset, :token_span, :resources]
end

Access is a behaviour, so you just need to implement the behaviour functions. They’re already implemented for a Map so you can just delegate to the map module.

defdelegate fetch(term, key), to: Map
defdelegate get(term, key, default), to: Map
defdelegate get_and_update(term, key, fun), to: Map
3 Likes

You can do it one line with this package I wrote:

2 Likes