🤝 The missing `Accept` implementation for `headers::Header`
This crate provides an implementation of headers::Header for Accept.
While other crates exist, they either rely on stagnant crates like mime (headers-accept uses mediatype instead) or deviate from RFC 9110 (by imposing onerous sort logic) or both.
This crate aims to solve these problems while adhering to the spec outlined in section 12.5.1.
To use the crate in your project, add the following to your Cargo.toml file:
[dependencies]
headers-accept = "0.2.1"use std::str::FromStr;
use headers_accept::Accept;
use mediatype::MediaTypeBuf;
let accept = Accept::from_str("audio/*; q=0.2, audio/basic").unwrap();
let mut media_types = accept.media_types();
assert_eq!(
media_types.next(),
Some(&MediaTypeBuf::from_str("audio/basic").unwrap())
);
assert_eq!(
media_types.next(),
Some(&MediaTypeBuf::from_str("audio/*; q=0.2").unwrap())
);
assert_eq!(media_types.next(), None);This crate uses #![forbid(unsafe_code)] to ensure everything is implemented in 100% safe Rust.
We appreciate all kinds of contributions, thank you!