-module(oaspec@internal@codegen@codec_helpers). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]). -define(FILEPATH, "src/oaspec/internal/codegen/codec_helpers.gleam"). -export([escape_for_string_literal/1, list_at_or/3, qualified_schema_ref_type/2, schema_ref_has_bare_option_type/1]). -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/oaspec/internal/codegen/codec_helpers.gleam", 23). ?DOC(false). -spec escape_for_string_literal(binary()) -> binary(). escape_for_string_literal(Value) -> _pipe = Value, _pipe@1 = gleam@string:replace(_pipe, <<"\\"/utf8>>, <<"\\\\"/utf8>>), gleam@string:replace(_pipe@1, <<"\""/utf8>>, <<"\\\""/utf8>>). -file("src/oaspec/internal/codegen/codec_helpers.gleam", 30). ?DOC(false). -spec list_at_or(list(binary()), integer(), binary()) -> binary(). list_at_or(Lst, Idx, Default) -> case {Lst, Idx} of {[], _} -> Default; {[Head | _], 0} -> Head; {[_ | Rest], N} -> list_at_or(Rest, N - 1, Default) end. -file("src/oaspec/internal/codegen/codec_helpers.gleam", 42). ?DOC(false). -spec qualified_schema_ref_type( oaspec@internal@openapi@schema:schema_ref(), oaspec@internal@codegen@context:context() ) -> binary(). qualified_schema_ref_type(Ref, _) -> case Ref of {inline, Schema} -> oaspec@internal@codegen@schema_dispatch:schema_type(Schema); _ -> oaspec@internal@codegen@schema_dispatch:schema_ref_qualified_type( Ref ) end. -file("src/oaspec/internal/codegen/codec_helpers.gleam", 57). ?DOC(false). -spec schema_ref_has_bare_option_type( oaspec@internal@openapi@schema:schema_ref() ) -> boolean(). schema_ref_has_bare_option_type(Ref) -> case Ref of {inline, {string_schema, Metadata, _, [], _, _, _}} -> erlang:element(3, Metadata); {inline, {integer_schema, Metadata@1, _, _, _, _, _, _}} -> erlang:element(3, Metadata@1); {inline, {number_schema, Metadata@2, _, _, _, _, _, _}} -> erlang:element(3, Metadata@2); {inline, {boolean_schema, Metadata@3}} -> erlang:element(3, Metadata@3); {inline, {array_schema, Metadata@4, _, _, _, _}} -> erlang:element(3, Metadata@4); _ -> false end.