Delegator.AliasesMap (delegator v0.2.0)

Copy Markdown View Source

Maps definitions to the provided alias.

Summary

Functions

Get the alias for a given definition.

Creates an aliases map from an enumerable.

Functions

get(aliases_map, arg, default \\ nil)

Get the alias for a given definition.

Any alias using the wildcard :* supersedes an entry for a specific arity.

new(enumerable \\ [])

Creates an aliases map from an enumerable.

Items in the enumerable must be one of:

  • {{name, arity}, alias} - maps a specific definition to an alias;
  • {name, alias} - maps all defitions with the same name to an alias.

Names and aliases may be strings or atoms. Internally both are stored as strings.

Examples

iex> Delegator.AliasesMap.new()
#Delegator.AliasesMap<aliases: %{}>

iex> Delegator.AliasesMap.new([])
#Delegator.AliasesMap<aliases: %{}>

iex> Delegator.AliasesMap.new([a: :c])
#Delegator.AliasesMap<aliases: %{{"c", :*} => "a"}>

iex> Delegator.AliasesMap.new(%{{:a, 1} => :c})
#Delegator.AliasesMap<aliases: %{{"c", 1} => "a"}>

iex> Delegator.AliasesMap.new(%{[a: 1, a: 2] => :c})
#Delegator.AliasesMap<aliases: %{{"c", 1} => "a", {"c", 2} => "a"}>