Dust.Cache behaviour (dustlayer v0.1.1)

Copy Markdown View Source

Summary

Callbacks

browse(target, store, opts)

(optional)
@callback browse(target :: term(), store :: String.t(), opts :: keyword()) ::
  {[{String.t(), term(), String.t(), integer()}], term() | nil}

count(target, store)

(optional)
@callback count(target :: term(), store :: String.t()) :: non_neg_integer()

delete(target, store, path)

@callback delete(target :: term(), store :: String.t(), path :: String.t()) :: :ok

delete_subtree(target, store, path)

@callback delete_subtree(target :: term(), store :: String.t(), path :: String.t()) ::
  non_neg_integer()

last_seq(target, store)

@callback last_seq(target :: term(), store :: String.t()) :: integer()

read(target, store, path)

@callback read(target :: term(), store :: String.t(), path :: String.t()) ::
  {:ok, term()} | :miss

read_all(target, store, pattern)

@callback read_all(target :: term(), store :: String.t(), pattern :: String.t()) :: [
  {String.t(), term()}
]

read_entry(target, store, path)

@callback read_entry(target :: term(), store :: String.t(), path :: String.t()) ::
  {:ok,
   {value :: term(), type :: String.t(), seq :: integer(),
    synced_at :: integer() | nil}}
  | :miss

read_many(target, store, paths)

@callback read_many(target :: term(), store :: String.t(), paths :: [String.t()]) :: %{
  required(String.t()) =>
    {value :: term(), type :: String.t(), seq :: integer()}
}

read_subtree(target, store, path)

@callback read_subtree(target :: term(), store :: String.t(), path :: String.t()) :: [
  {path :: String.t(), value :: term(), type :: String.t(), seq :: integer()}
]

write(target, store, path, value, type, seq)

@callback write(
  target :: term(),
  store :: String.t(),
  path :: String.t(),
  value :: term(),
  type :: String.t(),
  seq :: integer()
) :: :ok

write_batch(target, store, entries)

@callback write_batch(target :: term(), store :: String.t(), entries :: list()) :: :ok