Current section
Files
Jump to
Current section
Files
src/glopenai@internal@codec.erl
-module(glopenai@internal@codec).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/glopenai/internal/codec.gleam").
-export([optional_field/3, nullable_field/3, dynamic_to_json/1, object_with_optional/2]).
-if(?OTP_RELEASE >= 27).
-define(MODULEDOC(Str), -moduledoc(Str)).
-define(DOC(Str), -doc(Str)).
-else.
-define(MODULEDOC(Str), -compile([])).
-define(DOC(Str), -compile([])).
-endif.
?MODULEDOC(false).
-file("src/glopenai/internal/codec.gleam", 16).
?DOC(false).
-spec optional_field(
binary(),
gleam@option:option(EXP),
fun((EXP) -> gleam@json:json())
) -> list({binary(), gleam@json:json()}).
optional_field(Key, Value, Encoder) ->
case Value of
{some, V} ->
[{Key, Encoder(V)}];
none ->
[]
end.
-file("src/glopenai/internal/codec.gleam", 28).
?DOC(false).
-spec nullable_field(
binary(),
gleam@option:option(EXS),
fun((EXS) -> gleam@json:json())
) -> {binary(), gleam@json:json()}.
nullable_field(Key, Value, Encoder) ->
{Key, gleam@json:nullable(Value, Encoder)}.
-file("src/glopenai/internal/codec.gleam", 40).
?DOC(false).
-spec dynamic_to_json(gleam@dynamic:dynamic_()) -> gleam@json:json().
dynamic_to_json(Value) ->
glopenai_codec_ffi:dynamic_to_json(Value).
-file("src/glopenai/internal/codec.gleam", 43).
?DOC(false).
-spec object_with_optional(
list({binary(), gleam@json:json()}),
list(list({binary(), gleam@json:json()}))
) -> gleam@json:json().
object_with_optional(Required, Optional) ->
gleam@json:object(lists:append([Required | Optional])).