aboutsummaryrefslogtreecommitdiff
path: root/lib/pleroma/caching.ex
blob: 796a465af3b8bb53e41f584f12ea8c9641142784 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# Pleroma: A lightweight social networking server
# Copyright © 2017-2022 Pleroma Authors <https://pleroma.social/>
# SPDX-License-Identifier: AGPL-3.0-only

defmodule Pleroma.Caching do
  @callback get!(Cachex.cache(), any()) :: any()
  @callback get(Cachex.cache(), any()) :: {atom(), any()}
  @callback put(Cachex.cache(), any(), any(), Keyword.t()) :: {Cachex.status(), boolean()}
  @callback put(Cachex.cache(), any(), any()) :: {Cachex.status(), boolean()}
  @callback fetch!(Cachex.cache(), any(), function() | nil) :: any()
  @callback fetch(Cachex.cache(), any(), function() | nil) ::
              {atom(), any()} | {atom(), any(), any()}
  # @callback del(Cachex.cache(), any(), Keyword.t()) :: {Cachex.status(), boolean()}
  @callback del(Cachex.cache(), any()) :: {Cachex.status(), boolean()}
  @callback stream!(Cachex.cache(), any()) :: Enumerable.t()
  @callback expire_at(Cachex.cache(), binary(), number()) :: {Cachex.status(), boolean()}
  @callback expire(Cachex.cache(), binary(), number()) :: {Cachex.status(), boolean()}
  @callback exists?(Cachex.cache(), any()) :: {Cachex.status(), boolean()}
  @callback execute!(Cachex.cache(), function()) :: any()
  @callback get_and_update(Cachex.cache(), any(), function()) ::
              {:commit | :ignore, any()}
end