mail v0.2.2 Mail.Proplist

A hybrid of erlang's proplists and lists keystores.

It acts as a Set for key-value pairs, but stil maintains it's order like a List.

Link to this section Summary

Functions

Removes a key-value pair by the given key and returns the remaining list

Drops the specified keys from the list, returning the remaining.

Filters the proplist, i.e. returns only those elements for which fun returns a truthy value.

Retrieves a value from the list

Detects if the list contains the specified key.

Retrieves all keys from the key value pairs present in the list, unlike :proplists.get_keys which will return non-kv pairs as keys

Concatentates the given lists.

Merges duplicate pairs with the latest value.

Prepends the key-value pair to the list if it doesn't already exist, otherwise it will replace the existing pair

Stores a key-value pair in the list, will replace an existing pair with the same key.

Takes the specified keys from the list, returning the remaining.

Link to this section Types

Specs

t() :: [{term(), term()} | term()]

Link to this section Functions

Link to this function

delete(list, key)

Specs

delete(list :: t(), key :: term()) :: t()

Removes a key-value pair by the given key and returns the remaining list

Args:

  • list - the list to remove the pair from
  • key - the key to remove
Link to this function

drop(list, keys)

Specs

drop(list :: t(), keys :: list()) :: t()

Drops the specified keys from the list, returning the remaining.

Args:

  • list - the list
  • keys - the keys to remove
Link to this function

filter(list, func)

Specs

filter(list :: t(), func :: any()) :: t()

Filters the proplist, i.e. returns only those elements for which fun returns a truthy value.

Args:

  • list - the list to filter
  • func - the function to execute

Retrieves a value from the list

Args:

  • list - the list to look in
  • key - the key of the pair to retrieve it's value
Link to this function

has_key?(list, key)

Specs

has_key?(list :: t(), key :: term()) :: [term()] | false

Detects if the list contains the specified key.

Args:

  • list - the list to look in
  • key - the key to look for

Specs

keys(list :: t()) :: [term()]

Retrieves all keys from the key value pairs present in the list, unlike :proplists.get_keys which will return non-kv pairs as keys

Args:

  • list - a list to retrieve all the keys from

Specs

merge(a :: t(), b :: t()) :: t()

Concatentates the given lists.

Args:

  • a - base list to merge unto
  • b - list to merge with
Link to this function

normalize(list)

Specs

normalize(list :: t()) :: t()

Merges duplicate pairs with the latest value.

Args:

  • list - the list to normalize
Link to this function

prepend(list, key, value)

Specs

prepend(list :: t(), key :: term(), value :: term()) :: t()

Prepends the key-value pair to the list if it doesn't already exist, otherwise it will replace the existing pair

Args:

  • list - the list to store in
  • key - the key of the pair
  • value - the value of the pair
Link to this function

put(list, key, value)

Specs

put(list :: t(), key :: term(), value :: term()) :: t()

Stores a key-value pair in the list, will replace an existing pair with the same key.

Args:

  • list - the list to store in
  • key - the key of the pair
  • value - the value of the pair
Link to this function

take(list, keys)

Specs

take(list :: t(), keys :: list()) :: t()

Takes the specified keys from the list, returning the remaining.

Args:

  • list - the list
  • keys - the keys to keep