#![warn(missing_docs)]
#![cfg_attr(docsrs, feature(doc_cfg))]
mod builder;
pub mod prelude;
pub use builder::App;
pub use kerniq_core::{Error, Result};
#[cfg(feature = "macros")]
pub use kerniq_macros::authorize;
pub use axum;
pub use http;
pub use tower;
pub mod error {
pub use kerniq_core::error::*;
}
pub mod config {
pub use kerniq_core::config::*;
}
pub mod extract {
pub use kerniq_http::extractors::*;
#[cfg(feature = "websocket")]
pub use kerniq_http::ws;
pub use kerniq_http::{
Body, Bytes, ConnectInfo, Extension, HeaderMap, MatchedPath, OriginalUri, Request, State,
};
#[cfg(feature = "validation")]
pub use kerniq_http::{ValidatedJson, ValidatedQuery, validation_error};
}
pub mod response {
pub use kerniq_http::response::*;
}
pub mod routing {
pub use kerniq_routing::path;
pub use kerniq_routing::{Group, RouteInfo, Router, methods};
}
pub mod middleware {
pub use kerniq_middleware::*;
pub use kerniq_routing::{Middleware, MiddlewareStack, TowerLayer};
}
pub mod runtime {
pub use kerniq_runtime::runtime::in_runtime;
pub use kerniq_runtime::{BackgroundTasks, ServeOptions, Shutdown, os_signal};
}
#[cfg(feature = "openapi")]
pub mod openapi {
pub use kerniq_openapi::*;
}
#[cfg(doctest)]
mod documentation {
macro_rules! doc_page {
($name:ident, $path:literal) => {
#[doc = include_str!(concat!("../../../", $path))]
struct $name;
};
($name:ident, $path:literal, $($feature:literal),+) => {
#[cfg(all($(feature = $feature),+))]
#[doc = include_str!(concat!("../../../", $path))]
struct $name;
};
}
doc_page!(Readme, "README.md", "json", "tracing");
doc_page!(GettingStarted, "docs/getting-started.md", "json");
doc_page!(Routing, "docs/routing.md");
doc_page!(Handlers, "docs/handlers.md", "json");
doc_page!(Extractors, "docs/extractors.md", "json", "validation");
doc_page!(StateManagement, "docs/state-management.md", "json");
doc_page!(Middleware, "docs/middleware.md", "tracing", "cors");
doc_page!(Authorization, "docs/authorization.md", "macros", "json");
doc_page!(AxumInterop, "docs/axum-interop.md", "json");
doc_page!(Runtime, "docs/runtime.md");
doc_page!(Websockets, "docs/websockets.md", "websocket");
doc_page!(Configuration, "docs/configuration.md", "config-file");
doc_page!(Integrations, "docs/integrations.md");
doc_page!(OpenApi, "docs/openapi.md", "openapi", "json");
doc_page!(Performance, "docs/performance.md");
doc_page!(Architecture, "docs/architecture.md");
}