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 thealloc
crateserde
- enables serialization/deserialization usingserde
db
- enables theconst
database 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
A Database of all IANA-registered Media Types
Macros
A helper to easily create media types in const contexts
Structs
A parsing error
A Media Type
An iterator for Media Type parameters
A wrapper for uncased ASCII comparisons
Traits
A trait associating a Media Type with a Rust type