View Source Mail.Proplist (mail v0.4.0)

A hybrid of Erlang's proplists and lists keystores.

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

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

Concatenates 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.

Types

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

Functions

@spec 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
@spec 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
@spec 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
@spec 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
@spec 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
@spec merge(a :: t(), b :: t()) :: t()

Concatenates the given lists.

Args:

  • a - base list to merge unto
  • b - list to merge with
@spec 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)

View Source
@spec 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
@spec 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
@spec 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