Packages
dagger
0.18.5
0.21.7
0.21.6
0.21.5
0.21.4
0.21.3
0.21.2
0.21.1
0.21.0
0.20.8
0.20.7
0.20.6
0.20.5
0.20.4
0.20.3
0.20.2
0.20.1
0.20.0
0.19.11
0.19.10
0.19.9
0.19.8
0.19.7
0.19.6
0.19.5
0.19.4
0.19.3
0.19.2
0.19.1
0.19.0
0.18.19
0.18.18
0.18.17
0.18.16
0.18.15
0.18.14
0.18.13
0.18.12
0.18.11
0.18.10
0.18.9
0.18.8
0.18.7
0.18.5
0.18.4
0.18.3
0.18.2
0.18.1
0.18.0
0.17.2
0.17.1
0.17.0
0.16.3
0.16.2
0.16.1
0.16.0
0.15.4
0.15.3
0.15.2
0.15.1
0.15.0
0.14.0
0.13.7
0.13.6
0.13.5
0.13.4
0.13.3
0.13.2
0.13.1
0.13.0
0.12.7
0.12.6
0.12.5
0.12.4
0.12.3
0.12.2
0.12.1
0.12.0
0.11.9
0.11.8
0.11.7
0.11.6
0.11.5
0.11.4
0.11.3
0.11.2
0.11.1
0.11.0
0.10.3
0.10.2
0.10.1
0.10.0
0.9.11
0.9.10
0.9.9
0.9.8
0.9.7
0.9.6
0.9.5
0.9.4
0.9.3
0.9.2
0.9.1
0.9.0
0.8.8
0.8.7
0.8.6
0.8.5
0.8.4
0.8.2
0.0.0
retired
Dagger SDK for Elixir
Current section
Files
Jump to
Current section
Files
lib/dagger/gen/engine_cache.ex
# This file generated by `dagger_codegen`. Please DO NOT EDIT.
defmodule Dagger.EngineCache do
@moduledoc """
A cache storage for the Dagger engine
"""
alias Dagger.Core.Client
alias Dagger.Core.QueryBuilder, as: QB
@derive Dagger.ID
defstruct [:query_builder, :client]
@type t() :: %__MODULE__{}
@doc """
The current set of entries in the cache
"""
@spec entry_set(t(), [{:key, String.t() | nil}]) :: Dagger.EngineCacheEntrySet.t()
def entry_set(%__MODULE__{} = engine_cache, optional_args \\ []) do
query_builder =
engine_cache.query_builder
|> QB.select("entrySet")
|> QB.maybe_put_arg("key", optional_args[:key])
%Dagger.EngineCacheEntrySet{
query_builder: query_builder,
client: engine_cache.client
}
end
@doc """
A unique identifier for this EngineCache.
"""
@spec id(t()) :: {:ok, Dagger.EngineCacheID.t()} | {:error, term()}
def id(%__MODULE__{} = engine_cache) do
query_builder =
engine_cache.query_builder |> QB.select("id")
Client.execute(engine_cache.client, query_builder)
end
@deprecated """
Use minFreeSpace instead.
"""
@doc """
The maximum bytes to keep in the cache without pruning, after which automatic pruning may kick in.
"""
@spec keep_bytes(t()) :: {:ok, integer()} | {:error, term()}
def keep_bytes(%__MODULE__{} = engine_cache) do
query_builder =
engine_cache.query_builder |> QB.select("keepBytes")
Client.execute(engine_cache.client, query_builder)
end
@doc """
The maximum bytes to keep in the cache without pruning.
"""
@spec max_used_space(t()) :: {:ok, integer()} | {:error, term()}
def max_used_space(%__MODULE__{} = engine_cache) do
query_builder =
engine_cache.query_builder |> QB.select("maxUsedSpace")
Client.execute(engine_cache.client, query_builder)
end
@doc """
The target amount of free disk space the garbage collector will attempt to leave.
"""
@spec min_free_space(t()) :: {:ok, integer()} | {:error, term()}
def min_free_space(%__MODULE__{} = engine_cache) do
query_builder =
engine_cache.query_builder |> QB.select("minFreeSpace")
Client.execute(engine_cache.client, query_builder)
end
@doc """
Prune the cache of releaseable entries
"""
@spec prune(t()) :: :ok | {:error, term()}
def prune(%__MODULE__{} = engine_cache) do
query_builder =
engine_cache.query_builder |> QB.select("prune")
case Client.execute(engine_cache.client, query_builder) do
{:ok, _} -> :ok
error -> error
end
end
@spec reserved_space(t()) :: {:ok, integer()} | {:error, term()}
def reserved_space(%__MODULE__{} = engine_cache) do
query_builder =
engine_cache.query_builder |> QB.select("reservedSpace")
Client.execute(engine_cache.client, query_builder)
end
end
defimpl Jason.Encoder, for: Dagger.EngineCache do
def encode(engine_cache, opts) do
{:ok, id} = Dagger.EngineCache.id(engine_cache)
Jason.Encode.string(id, opts)
end
end
defimpl Nestru.Decoder, for: Dagger.EngineCache do
def decode_fields_hint(_struct, _context, id) do
{:ok, Dagger.Client.load_engine_cache_from_id(Dagger.Global.dag(), id)}
end
end