-module(oaspec@util@content_type). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]). -define(FILEPATH, "src/oaspec/util/content_type.gleam"). -export([from_string/1, to_string/1, is_supported/1, is_supported_request/1, is_supported_response/1]). -export_type([content_type/0]). -if(?OTP_RELEASE >= 27). -define(MODULEDOC(Str), -moduledoc(Str)). -define(DOC(Str), -doc(Str)). -else. -define(MODULEDOC(Str), -compile([])). -define(DOC(Str), -compile([])). -endif. -type content_type() :: application_json | text_plain | multipart_form_data | {unsupported_content_type, binary()}. -file("src/oaspec/util/content_type.gleam", 10). ?DOC(" Parse a content type string into a ContentType.\n"). -spec from_string(binary()) -> content_type(). from_string(Content_type) -> case Content_type of <<"application/json"/utf8>> -> application_json; <<"text/plain"/utf8>> -> text_plain; <<"multipart/form-data"/utf8>> -> multipart_form_data; Other -> {unsupported_content_type, Other} end. -file("src/oaspec/util/content_type.gleam", 20). ?DOC(" Convert a ContentType back to its string representation.\n"). -spec to_string(content_type()) -> binary(). to_string(Content_type) -> case Content_type of application_json -> <<"application/json"/utf8>>; text_plain -> <<"text/plain"/utf8>>; multipart_form_data -> <<"multipart/form-data"/utf8>>; {unsupported_content_type, S} -> S end. -file("src/oaspec/util/content_type.gleam", 30). ?DOC(" Check if a content type is supported anywhere in code generation.\n"). -spec is_supported(content_type()) -> boolean(). is_supported(Content_type) -> case Content_type of application_json -> true; text_plain -> true; multipart_form_data -> true; _ -> false end. -file("src/oaspec/util/content_type.gleam", 40). ?DOC(" Check if a content type is supported for request bodies.\n"). -spec is_supported_request(content_type()) -> boolean(). is_supported_request(Content_type) -> case Content_type of application_json -> true; multipart_form_data -> true; _ -> false end. -file("src/oaspec/util/content_type.gleam", 49). ?DOC(" Check if a content type is supported for responses.\n"). -spec is_supported_response(content_type()) -> boolean(). is_supported_response(Content_type) -> case Content_type of application_json -> true; text_plain -> true; _ -> false end.