1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
//! This crate provides a media type parser which is gerneric over the specific grammar. //! //! Depending on where media types appear they grammar can diff from small aspects (like //! which characters are allowed win type, subtype and parameter names) to larger aspects //! (like allowing comments and soft line brakes :=\ ). //! //! Intially this crate will provide impl. for Media Types in context of Http and such in //! context of Mime as well as a more strict parser for types which should be gennerally //! compatible with any grammar. //! //! Note that while media types often seem simple, they have a lot of tricky aspects, for examples //! the semantics of parameter value comparsion depend on the actual parameter type, subtype //! combination, which given that anyone can use custom types/register new ones, means it's not //! possible to implement a general equality operation correctly. Because of the same reason in //! context of the fact that any non appearing parameter has a default value implementing a //! generally correct hashin function or even media-range matching function is not possible either. //! //! This crate tries to have the best trate off between "korrectness", performance and depth of //! implementaion (special knowledge for some media types, e.g. that "charset=utf-8" and //! "charset=utf8" are equal). It tries to be easie to use for the most common use cases but at //! the same time to have the needed flexibility/funcionallity for more complex use cases.