Expand description
§Welcome!
Telestes provides an implementation of Media Types; also formerly known
as MIME Types. This crate emphasizes performance and correctness; as well
as the ability to parse in a const context. It is no_std-enabled.
To get started, check out the MediaType and Essence types.
§Optional Features
alloc- enables the use of types in thealloccrateserde- enables serialization/deserialization usingserdedb- enables theconstdatabase of IANA Media Types
§Terminology
The terminology of this crate should follow the terminology broadly used
in the RFCs or other notable documentation; with one exception. Since the
type terminology of a Media Type collides with the Rust type keyword,
we have chosen the terms genus and species to replace the terms for
type and subtype, respectively.
§Example
use telestes::{MediaType, media};
const MT: MediaType<&'static str> = media!("text/plain; charset=UTF-8");
assert_eq!(MT, "text/plain; charset=UTF-8");
assert_eq!(MT.essence(), "text/plain");
assert_eq!(MT.essence().genus(), "text");
assert_eq!(MT.essence().species(), "plain");
assert_eq!(MT.parameters().get("charset"), Some("UTF-8"));§Naming
This crate is named after the character Telestes from the Greek play Seven Against Thebes by Aeschylus. This character is possibly history’s first recorded pantomime.
Modules§
- db
db - A Database of all IANA-registered Media Types
Macros§
- media
- A helper to easily create media types in const contexts
Structs§
- Error
- A parsing error
- Essence
- The essence of a
MediaType. - Media
Type - A Media Type
- Parameters
- An iterator for Media Type parameters
- Uncased
- A wrapper for uncased ASCII comparisons
Traits§
- Media
Typed - A trait associating a Media Type with a Rust type