2 releases
0.1.1 | May 5, 2022 |
---|---|
0.1.0 | May 5, 2022 |
#1378 in Parser implementations
555KB
10K
SLoC
telestes
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;
let mt = MediaType::new("text/plain; charset=UTF-8").unwrap();
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.
License: Apache-2.0