defmodule OneAndDone.Cache do @moduledoc """ Defines the most basic cache interface. This module is used as a reference for Cache implementations. Although not used by OneAndDone, Cache implementations should be compliant with this module. This module is compliant with `Nebulex.Cache`. If you use Nebulex, you are already compliant with this module. """ @doc """ Retreive a value from the cache. """ @callback get(key :: any()) :: any | nil @doc """ Store a value in the cache under the given key. Opts must include a TTL, given in milliseconds. """ @callback put(key :: any(), value :: any(), opts :: [ttl: pos_integer()]) :: :ok end