Function quoted_string::quote_if_needed
[−]
[src]
pub fn quote_if_needed<'a, FN>(
input: &'a str,
valid_without_quoting: FN,
quoted_string_type: QuotedStringType
) -> Result<(QuotedStringType, Cow<'a, str>)> where
FN: ValidWithoutQuotationCheck,
quotes the input string if needed(RFC 5322/6532/822/2045)
The valid_without_quoting parameter accepts a function,
which should only return true if the char is valid
without quoting. So this function should never return true
for e.g. \0. Use this function if some characters are
only valid in a quoted-string context.
If the allowed_mail_type parameter is set to Ascii
the algorithm will return a error if it stumbles over
a non-ascii character, else it will just indicate the
appearance of one through the returned quoted string type. Note
that if you set quoted_string_type to Utf8
the function still can returns a QuotedStringType::AsciiOnly which
means only ascii characters where contained, even through non ascii
character where allowed.
The quoting process can fail if characters are contained,
which can not appear in a quoted string independent of
quoted string type. This are chars which are neither
qtext,vchar nor WS (' ' and '\t').
Which are basically only 0x7F (DEL) and the
characters < 0x20 (' ') except 0x09 ('\t').
Note that if the valid_without_quoting function states a CTL
char is valid without quoting then the algorithm will see it
as such even through there shouldn't be any context in which a
CTL char is valid without quoting.