//! HTTP Content headers.
//!
//! These headers are used for "content negotiation": the client shares information
//! about which content it prefers, and the server responds by sharing which
//! content it's chosen to share. This enables clients to receive resources with the
//! best available compression, in the preferred language, and more.
//!
//! # Further Reading
//!
//! - [MDN: Content Negotiation](https://developer.mozilla.org/en-US/docs/Web/HTTP/Content_negotiation)
//!
//! # Examples
//!
//! ```
//! # fn main() -> http_types::Result<()> {
//! #
//! use http_types::content::{Accept, MediaTypeProposal};
//! use http_types::{mime, Response};
//!
//! let mut accept = Accept::new();
//! accept.push(MediaTypeProposal::new(mime::HTML, Some(0.8))?);
//! accept.push(MediaTypeProposal::new(mime::XML, Some(0.4))?);
//! accept.push(mime::PLAIN);
//!
//! let mut res = Response::new(200);
//! let content_type = accept.negotiate(&[mime::XML])?;
//! content_type.apply(&mut res);
//!
//! assert_eq!(res["Content-Type"], "application/xml;charset=utf-8");
//! #
//! # Ok(()) }
//! ```
pub use Accept;
pub use AcceptEncoding;
pub use ContentEncoding;
pub use ContentLength;
pub use ContentLocation;
pub use ContentType;
pub use Encoding;
pub use EncodingProposal;
pub use MediaTypeProposal;