|
- # Pleroma: A lightweight social networking server
- # Copyright © 2017-2021 Pleroma Authors <https://pleroma.social/>
- # SPDX-License-Identifier: AGPL-3.0-only
-
- defmodule Pleroma.NullCache do
- @moduledoc """
- A module simulating a permanently empty cache.
- """
- @behaviour Pleroma.Caching
-
- @impl true
- def get!(_, _), do: nil
-
- @impl true
- def put(_, _, _, _ \\ nil), do: {:ok, true}
-
- @impl true
- def stream!(_, _), do: []
-
- @impl true
- def get(_, _), do: {:ok, nil}
-
- @impl true
- def fetch!(_, key, func) do
- case func.(key) do
- {_, res} -> res
- res -> res
- end
- end
-
- @impl true
- def get_and_update(_, _, func) do
- func.(nil)
- end
-
- @impl true
- def expire_at(_, _, _), do: {:ok, true}
-
- @impl true
- def exists?(_, _), do: {:ok, false}
-
- @impl true
- def execute!(_, func) do
- func.(:nothing)
- end
-
- @impl true
- def del(_, _), do: {:ok, true}
- end
|