Closed rustonaut closed 6 years ago
also make following parts it's own crates:
codec::quoted_string
utils::vec1
and codec::{quoted_printable, quoted_string, base64, idna, ?mime?}
basically only provide glue for "external" thinks (and sometimes define them them self).
Move them to extern
, create crates for all which define there stuff them self, just leaving the glue behind.
done. new layout is:
*mail-codec-composition <- [mail-codec, mail-codec-headers, mail-codec-core]
*mail-codec <- [mail-codec-headers, mail-codec-core]
mail-codec-headers <- [mail-codec-core]
mail-codec-core <- []
Consumers should either mainly depend on mail-codec
or on mail-codec-composition
.
Through reexport most parts of mail-codec-*
dependencies are made available in the
mail-codec
crate.
as well as following newly created "external" dependencies:
lut, vec1, soft-ascii-string, total-order-multi-map
Possible approach:
mail-codec-core
containsutils
+grammar
+codec
mail-codec-components
contains all componentsmail-codec-header
contains mainly the header mapmail-codec-mail
containsmail
including Resource etc. (is this completly encoding specific?)mail-codec-composition
contains all the composition bitsNote: all encoding specific parts are behind a default active feature, this can be tricky wrt. the header map