Bandera. Store. Persistent behaviour
(bandera v0.1.0)
Copy Markdown
Behaviour for durable flag storage adapters (Memory, Ecto, Redis).
Summary
Callbacks
Returns {:ok, names} with every stored flag name, or {:error, reason}.
Returns {:ok, flags} with every stored flag, or {:error, reason}.
Removes the entire flag from durable storage and returns the resulting empty flag.
Removes a single gate from durable storage and returns the updated flag.
Reads a flag straight from durable storage. Returns {:ok, flag} or {:error, reason}.
Persists gate onto the flag and returns the updated flag (or {:error, reason}).
Callbacks
Returns {:ok, names} with every stored flag name, or {:error, reason}.
@callback all_flags() :: {:ok, [Bandera.Flag.t()]} | {:error, term()}
Returns {:ok, flags} with every stored flag, or {:error, reason}.
@callback delete(flag_name :: atom()) :: {:ok, Bandera.Flag.t()} | {:error, term()}
Removes the entire flag from durable storage and returns the resulting empty flag.
@callback delete(flag_name :: atom(), gate :: Bandera.Gate.t()) :: {:ok, Bandera.Flag.t()} | {:error, term()}
Removes a single gate from durable storage and returns the updated flag.
@callback get(flag_name :: atom()) :: {:ok, Bandera.Flag.t()} | {:error, term()}
Reads a flag straight from durable storage. Returns {:ok, flag} or {:error, reason}.
@callback put(flag_name :: atom(), gate :: Bandera.Gate.t()) :: {:ok, Bandera.Flag.t()} | {:error, term()}
Persists gate onto the flag and returns the updated flag (or {:error, reason}).