Skip to main content

src/internal@encoder@encoding.erl

-module(internal@encoder@encoding).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/internal/encoder/encoding.gleam").
-export_type([rfc/0, field_type/0, encoding/0, encoding_mode/0, encoder_error/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.

?MODULEDOC(
    " Public types for the available encoders.\n"
    " Available encodings.\n"
).

-type rfc() :: rfc2045 | rfc2047.

-type field_type() :: unstructured | structured.

-type encoding() :: {bit, integer()} |
    base64 |
    percent_encoding |
    {quoted_printable, rfc()} |
    {text, field_type()}.

-type encoding_mode() :: ascii | utf8.

-type encoder_error() :: {invalid_character, binary()} |
    {invalid_email_address, binary()} |
    {invalid_domain, binary()} |
    {maximum_size_exceeded, integer()} |
    no_encoder_found |
    unknown_error.