Module Email_message__Headers
module Normalize : sig ... endNormalizespecifies how to handle header values. It is used in two contexts:
module Name : sig ... endmodule Common : sig ... endThis is just a list of commonly used header field names for simple reuse
module Value : sig ... endval compare : t -> t -> intval hash_fold_t : Base.Hash.state -> t -> Base.Hash.stateval hash : t -> Base.Hash.hash_valueval sexp_of_t : t -> Ppx_sexp_conv_lib.Sexp.t
val to_string_monoid : ?eol:Email_message__.Lf_or_crlf.t -> t -> Email_message.String_monoid.teoldefaults to `LF
val to_string : ?eol:Email_message__.Lf_or_crlf.t -> t -> stringval empty : tval append : t -> t -> tval of_list : normalize:Normalize.encode -> (Name.t * Value.t) list -> tval to_list : ?normalize:Normalize.decode -> t -> (Name.t * Value.t) listval last : ?normalize:Normalize.decode -> t -> Name.t -> Value.t optionval find_all : ?normalize:Normalize.decode -> t -> Name.t -> Value.t listval names : t -> Name.t listval add : ?normalize:Normalize.encode -> t -> name:Name.t -> value:Value.t -> tval add_at_bottom : ?normalize:Normalize.encode -> t -> name:Name.t -> value:Value.t -> tval add_if_missing : ?normalize:Normalize.encode -> t -> name:Name.t -> value:Value.t -> tval add_at_bottom_if_missing : ?normalize:Normalize.encode -> t -> name:Name.t -> value:Value.t -> tval set : ?normalize:Normalize.encode -> t -> name:Name.t -> value:Value.t -> tval set_at_bottom : ?normalize:Normalize.encode -> t -> name:Name.t -> value:Value.t -> tval add_all : ?normalize:Normalize.encode -> t -> (Name.t * Value.t) list -> tval add_all_at_bottom : ?normalize:Normalize.encode -> t -> (Name.t * Value.t) list -> tval smash_and_add : ?normalize:Normalize.encode -> t -> name:Name.t -> value:Value.t -> tIf headers with this name already exist, concatenates the values for all separated by a comma, and appends the new value. Otherwise, creates a new header.
val filter : ?normalize:Normalize.decode -> t -> f:(name:Name.t -> value:Value.t -> bool) -> tval map : ?normalize:Normalize.decode -> t -> f:(name:Name.t -> value:Value.t -> Value.t) -> trewrite header values, preserving original whitespace where possible.
normalizeis used toValue.of_string ?normalizethe~valuebefore passing tof, and again toValue.to_string ?normalizethe result. If the~valueandf ~name ~valueare the same no change will be made (white space is preserved).Particularly the following is an identity transform:
map ~normalize:`Whitespace ~f:(fun ~name:_ ~value -> Value.of_string ~normalize:`Whitespace value). By contrast the following will 'normalize' the whitespace on all headers.map ~normalize:`None ~f:(fun ~name:_ ~value -> Value.of_string ~normalize:`Whitespace value).
val map' : ?normalize:Normalize.decode -> t -> f:(name:Name.t -> value:Value.t -> Name.t * Value.t) -> t
module Stable : sig ... end