# This file generated by `mix dagger.gen`. Please DO NOT EDIT.
defmodule Dagger.LocalModuleSource do
  @moduledoc "Module source that that originates from a path locally relative to an arbitrary directory."
  use Dagger.QueryBuilder
  @type t() :: %__MODULE__{}
  defstruct [:selection, :client]

  (
    @doc "A unique identifier for this LocalModuleSource."
    @spec id(t()) :: {:ok, Dagger.LocalModuleSourceID.t()} | {:error, term()}
    def id(%__MODULE__{} = local_module_source) do
      selection = select(local_module_source.selection, "id")
      execute(selection, local_module_source.client)
    end
  )

  (
    @doc ""
    @spec source_subpath(t()) :: {:ok, Dagger.String.t()} | {:error, term()}
    def source_subpath(%__MODULE__{} = local_module_source) do
      selection = select(local_module_source.selection, "sourceSubpath")
      execute(selection, local_module_source.client)
    end
  )
end
