Packages
oaspec
0.21.0
0.68.0
0.67.0
0.66.0
0.65.0
0.64.0
0.63.0
0.62.0
0.61.0
0.60.0
0.59.0
0.58.1
0.58.0
0.57.0
0.56.0
0.55.0
0.54.0
0.53.0
0.52.0
0.51.0
0.50.0
0.49.0
0.48.0
0.47.0
0.46.0
0.45.0
0.44.0
0.43.0
0.42.0
0.41.0
0.40.0
0.39.0
0.38.0
0.37.0
0.36.0
0.35.0
0.34.0
0.33.0
0.32.0
0.31.0
0.30.0
0.29.0
0.28.0
0.27.0
0.26.0
0.25.0
0.24.0
0.23.0
0.22.0
0.21.0
0.20.0
0.19.0
0.18.0
0.17.0
0.16.0
0.15.0
0.14.0
0.13.0
0.12.0
0.11.0
0.10.0
0.9.0
0.8.0
0.7.0
0.6.3
0.6.1
0.6.0
0.5.0
0.4.0
0.3.0
0.1.3
Generate Gleam code from OpenAPI 3.x specifications
Current section
Files
Jump to
Current section
Files
src/oaspec@util@string_extra.erl
-module(oaspec@util@string_extra).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/oaspec/util/string_extra.gleam").
-export([new/0, line/2, indent/3, blank_line/1, file_header/1, imports/2, to_string/1, join_with/2, doc_comment/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.
-file("src/oaspec/util/string_extra.gleam", 10).
?DOC(" Create a new empty string builder.\n").
-spec new() -> gleam@string_tree:string_tree().
new() ->
gleam@string_tree:new().
-file("src/oaspec/util/string_extra.gleam", 15).
?DOC(" Append a line to the string builder.\n").
-spec line(gleam@string_tree:string_tree(), binary()) -> gleam@string_tree:string_tree().
line(Sb, Text) ->
_pipe = Sb,
_pipe@1 = gleam@string_tree:append(_pipe, Text),
gleam@string_tree:append(_pipe@1, <<"\n"/utf8>>).
-file("src/oaspec/util/string_extra.gleam", 22).
?DOC(" Append an indented line to the string builder.\n").
-spec indent(gleam@string_tree:string_tree(), integer(), binary()) -> gleam@string_tree:string_tree().
indent(Sb, Level, Text) ->
Spaces = gleam@string:repeat(<<" "/utf8>>, Level),
_pipe = Sb,
_pipe@1 = gleam@string_tree:append(_pipe, Spaces),
_pipe@2 = gleam@string_tree:append(_pipe@1, Text),
gleam@string_tree:append(_pipe@2, <<"\n"/utf8>>).
-file("src/oaspec/util/string_extra.gleam", 31).
?DOC(" Append a blank line.\n").
-spec blank_line(gleam@string_tree:string_tree()) -> gleam@string_tree:string_tree().
blank_line(Sb) ->
_pipe = Sb,
gleam@string_tree:append(_pipe, <<"\n"/utf8>>).
-file("src/oaspec/util/string_extra.gleam", 37).
?DOC(" Generate a file header with auto-generation notice.\n").
-spec file_header(binary()) -> gleam@string_tree:string_tree().
file_header(Version) ->
_pipe = new(),
_pipe@1 = line(
_pipe,
<<<<"// Code generated by oaspec v"/utf8, Version/binary>>/binary,
". DO NOT EDIT."/utf8>>
),
blank_line(_pipe@1).
-file("src/oaspec/util/string_extra.gleam", 44).
?DOC(" Generate import statements.\n").
-spec imports(gleam@string_tree:string_tree(), list(binary())) -> gleam@string_tree:string_tree().
imports(Sb, Modules) ->
Sb@2 = gleam@list:fold(Modules, Sb, fun(Sb@1, Module) -> _pipe = Sb@1,
line(_pipe, <<"import "/utf8, Module/binary>>) end),
_pipe@1 = Sb@2,
blank_line(_pipe@1).
-file("src/oaspec/util/string_extra.gleam", 51).
?DOC(" Convert the string builder to a final string.\n").
-spec to_string(gleam@string_tree:string_tree()) -> binary().
to_string(Sb) ->
unicode:characters_to_binary(Sb).
-file("src/oaspec/util/string_extra.gleam", 56).
?DOC(" Join a list of strings with a separator.\n").
-spec join_with(list(binary()), binary()) -> binary().
join_with(Items, Separator) ->
gleam@string:join(Items, Separator).
-file("src/oaspec/util/string_extra.gleam", 61).
?DOC(" Wrap a string in Gleam doc comment style.\n").
-spec doc_comment(gleam@string_tree:string_tree(), binary()) -> gleam@string_tree:string_tree().
doc_comment(Sb, Text) ->
case Text of
<<""/utf8>> ->
Sb;
_ ->
Lines = gleam@string:split(Text, <<"\n"/utf8>>),
gleam@list:fold(Lines, Sb, fun(Sb@1, L) -> _pipe = Sb@1,
line(_pipe, <<"/// "/utf8, L/binary>>) end)
end.