Packages
dagger
0.21.6
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/exportable.ex
# This file generated by `dagger_codegen`. Please DO NOT EDIT.
defmodule Dagger.Exportable do
@moduledoc """
An object that can be exported to the host.
Calling export writes the object to a path on the host filesystem and returns the path that was written.
"""
use Dagger.Core.Base, kind: :interface, name: "Exportable"
alias Dagger.Core.Client
alias Dagger.Core.QueryBuilder, as: QB
@derive Dagger.ID
defstruct [:query_builder, :client]
@type t() :: %__MODULE__{}
@spec export(t(), String.t()) :: {:ok, String.t()} | {:error, term()}
def export(%__MODULE__{} = exportable, path) do
query_builder =
exportable.query_builder |> QB.select("export") |> QB.put_arg("path", path)
Client.execute(exportable.client, query_builder)
end
@spec id(t()) :: {:ok, String.t()} | {:error, term()}
def id(%__MODULE__{} = exportable) do
query_builder =
exportable.query_builder |> QB.select("id")
Client.execute(exportable.client, query_builder)
end
end
defimpl Jason.Encoder, for: Dagger.Exportable do
def encode(exportable, opts) do
{:ok, id} = Dagger.Exportable.id(exportable)
Jason.Encode.string(id, opts)
end
end
defimpl Nestru.Decoder, for: Dagger.Exportable do
def decode_fields_hint(_struct, _context, id) do
alias Dagger.Core.QueryBuilder, as: QB
dag = Dagger.Global.dag()
{:ok,
%Dagger.Exportable{
query_builder:
dag.query_builder
|> QB.select("node")
|> QB.put_arg("id", id)
|> QB.inline_fragment("Exportable"),
client: dag.client
}}
end
end