-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])).