Solve.Collection (Solve v0.2.3)

Copy Markdown View Source

Ordered keyed collection used by Solve collection sources, dependencies, and lookups.

Summary

Functions

Builds an ordered collection, rejecting duplicate IDs.

Reorders existing items. Raises ArgumentError unless IDs are a unique permutation of the keys.

Types

id()

@type id() :: term()

t(item)

@type t(item) :: %Solve.Collection{ids: [id()], items: %{required(id()) => item}}

Functions

delete(collection, id)

@spec delete(t(item), id()) :: t(item)

empty()

@spec empty() :: t(any())

fetch(collection, id)

@spec fetch(t(item), id()) :: {:ok, item} | :error when item: var

get(collection, id)

@spec get(t(item), id()) :: item | nil when item: var

new(entries)

@spec new(Enumerable.t()) :: t(any())

Builds an ordered collection, rejecting duplicate IDs.

put(collection, id, item)

@spec put(t(item), id(), item) :: t(item) when item: var

reorder(collection, ids)

@spec reorder(t(item), [id()]) :: t(item)

Reorders existing items. Raises ArgumentError unless IDs are a unique permutation of the keys.

to_list(collection)

@spec to_list(t(item)) :: [{id(), item}] when item: var