Solve.Collection (Solve v0.2.1)

Copy Markdown View Source

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

Summary

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

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)

to_list(collection)

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