# `Delegator.AliasesMap`
[🔗](https://codeberg.org/pfac/delegator)

Maps definitions to the provided alias.

# `get`

Get the alias for a given definition.

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

# `new`

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"}>

---

*Consult [api-reference.md](api-reference.md) for complete listing*
