-module(gdo@result).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/gdo/result.gleam").
-export([execution_result/2, rows_affected/1, last_insert_id/1, query_result/1, empty_query_result/0, rows/1, row_count/1, first/1]).
-export_type([execution_result/0, query_result/0]).
-type execution_result() :: {execution_result,
integer(),
gleam@option:option(integer())}.
-type query_result() :: {query_result, list(gdo@row:row())}.
-file("src/gdo/result.gleam", 13).
-spec execution_result(integer(), gleam@option:option(integer())) -> execution_result().
execution_result(Rows_affected, Last_insert_id) ->
{execution_result, Rows_affected, Last_insert_id}.
-file("src/gdo/result.gleam", 20).
-spec rows_affected(execution_result()) -> integer().
rows_affected(Result) ->
{execution_result, Rows_affected, _} = Result,
Rows_affected.
-file("src/gdo/result.gleam", 25).
-spec last_insert_id(execution_result()) -> gleam@option:option(integer()).
last_insert_id(Result) ->
{execution_result, _, Last_insert_id} = Result,
Last_insert_id.
-file("src/gdo/result.gleam", 30).
-spec query_result(list(gdo@row:row())) -> query_result().
query_result(Rows) ->
{query_result, Rows}.
-file("src/gdo/result.gleam", 34).
-spec empty_query_result() -> query_result().
empty_query_result() ->
{query_result, []}.
-file("src/gdo/result.gleam", 38).
-spec rows(query_result()) -> list(gdo@row:row()).
rows(Result) ->
{query_result, Rows} = Result,
Rows.
-file("src/gdo/result.gleam", 43).
-spec row_count(query_result()) -> integer().
row_count(Result) ->
_pipe = Result,
_pipe@1 = rows(_pipe),
erlang:length(_pipe@1).
-file("src/gdo/result.gleam", 47).
-spec first(query_result()) -> gleam@option:option(gdo@row:row()).
first(Result) ->
case rows(Result) of
[First | _] ->
{some, First};
[] ->
none
end.