#![forbid(unsafe_code)]
#![deny(
clippy::dbg_macro,
missing_copy_implementations,
rustdoc::missing_crate_level_docs,
missing_debug_implementations,
nonstandard_style,
unused_qualifications
)]
#![warn(missing_docs, clippy::pedantic, clippy::nursery, clippy::cargo)]
#![allow(
clippy::must_use_candidate,
clippy::module_name_repetitions,
clippy::multiple_crate_versions
)]
#[cfg(test)]
#[doc = include_str!("../README.md")]
mod readme {}
mod handler;
pub use handler::Handler;
mod conn;
pub use conn::Conn;
mod state;
pub use state::{State, state};
pub use trillium_http::{
Body, BodySource, Error, HeaderName, HeaderValue, HeaderValues, Headers, HttpConfig,
HttpContext, KnownHeaderName, Method, Status, Swansong, TypeSet, Version,
};
mod transport;
pub use transport::Transport;
mod upgrade;
pub use upgrade::Upgrade;
mod macros;
pub use log;
mod info;
pub use info::Info;
mod boxed_handler;
pub use boxed_handler::BoxedHandler;
mod init;
pub use init::{Init, init};
pub mod headers {
use crate::{CRATE_VERSION, HeaderValue};
use std::sync::LazyLock;
use trillium_http::CRATE_VERSION as HTTP_CRATE_VERSION;
pub use trillium_http::headers::{Entry, IntoIter, Iter};
pub fn server_header() -> HeaderValue {
static SERVER_HEADER: LazyLock<HeaderValue> = LazyLock::new(|| {
let s: &'static str =
format!("trillium/{CRATE_VERSION} trillium-http/{HTTP_CRATE_VERSION}").leak();
s.into()
});
SERVER_HEADER.clone()
}
}
pub mod type_set {
pub use trillium_http::type_set::entry::Entry;
}
mod request_body;
pub use request_body::RequestBody;
pub const CRATE_VERSION: &str = env!("CARGO_PKG_VERSION");