Packages
dagger
0.20.4
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/search_result.ex
# This file generated by `dagger_codegen`. Please DO NOT EDIT.
defmodule Dagger.SearchResult do
@moduledoc """
Dagger.SearchResult
"""
use Dagger.Core.Base, kind: :object, name: "SearchResult"
alias Dagger.Core.Client
alias Dagger.Core.QueryBuilder, as: QB
@derive Dagger.ID
defstruct [:query_builder, :client]
@type t() :: %__MODULE__{}
@doc """
The byte offset of this line within the file.
"""
@spec absolute_offset(t()) :: {:ok, integer()} | {:error, term()}
def absolute_offset(%__MODULE__{} = search_result) do
query_builder =
search_result.query_builder |> QB.select("absoluteOffset")
Client.execute(search_result.client, query_builder)
end
@doc """
The path to the file that matched.
"""
@spec file_path(t()) :: {:ok, String.t()} | {:error, term()}
def file_path(%__MODULE__{} = search_result) do
query_builder =
search_result.query_builder |> QB.select("filePath")
Client.execute(search_result.client, query_builder)
end
@doc """
A unique identifier for this SearchResult.
"""
@spec id(t()) :: {:ok, Dagger.SearchResultID.t()} | {:error, term()}
def id(%__MODULE__{} = search_result) do
query_builder =
search_result.query_builder |> QB.select("id")
Client.execute(search_result.client, query_builder)
end
@doc """
The first line that matched.
"""
@spec line_number(t()) :: {:ok, integer()} | {:error, term()}
def line_number(%__MODULE__{} = search_result) do
query_builder =
search_result.query_builder |> QB.select("lineNumber")
Client.execute(search_result.client, query_builder)
end
@doc """
The line content that matched.
"""
@spec matched_lines(t()) :: {:ok, String.t()} | {:error, term()}
def matched_lines(%__MODULE__{} = search_result) do
query_builder =
search_result.query_builder |> QB.select("matchedLines")
Client.execute(search_result.client, query_builder)
end
@doc """
Sub-match positions and content within the matched lines.
"""
@spec submatches(t()) :: {:ok, [Dagger.SearchSubmatch.t()]} | {:error, term()}
def submatches(%__MODULE__{} = search_result) do
query_builder =
search_result.query_builder |> QB.select("submatches") |> QB.select("id")
with {:ok, items} <- Client.execute(search_result.client, query_builder) do
{:ok,
for %{"id" => id} <- items do
%Dagger.SearchSubmatch{
query_builder:
QB.query()
|> QB.select("loadSearchSubmatchFromID")
|> QB.put_arg("id", id),
client: search_result.client
}
end}
end
end
end
defimpl Jason.Encoder, for: Dagger.SearchResult do
def encode(search_result, opts) do
{:ok, id} = Dagger.SearchResult.id(search_result)
Jason.Encode.string(id, opts)
end
end
defimpl Nestru.Decoder, for: Dagger.SearchResult do
def decode_fields_hint(_struct, _context, id) do
{:ok, Dagger.Client.load_search_result_from_id(Dagger.Global.dag(), id)}
end
end