mod app;
mod auto_route;
pub use auto_route::collect_auto_routes;
mod auto_schema;
pub use auto_schema::apply_auto_schemas;
mod error;
pub mod events;
mod extract;
mod handler;
pub mod hateoas;
pub mod health;
#[cfg(feature = "http3")]
pub mod http3;
pub mod interceptor;
pub(crate) mod json;
pub mod middleware;
pub mod multipart;
pub(crate) mod path_params;
pub(crate) mod path_validation;
#[cfg(feature = "replay")]
pub mod replay;
mod request;
mod response;
mod router;
mod server;
pub mod sse;
pub mod static_files;
pub mod status;
pub mod stream;
pub mod typed_path;
pub mod validation;
#[macro_use]
mod tracing_macros;
#[doc(hidden)]
pub mod __private {
pub use crate::auto_route::AUTO_ROUTES;
pub use crate::auto_schema::AUTO_SCHEMAS;
pub use linkme;
pub use rustapi_openapi;
pub use rustapi_validate;
}
pub use app::{ProductionDefaultsConfig, RustApi, RustApiConfig};
pub use error::{get_environment, ApiError, Environment, FieldError, Result};
pub use events::EventBus;
#[cfg(feature = "cookies")]
pub use extract::Cookies;
pub use extract::{
AsyncValidatedJson, Body, BodyStream, ClientIp, CursorPaginate, Extension, FromRequest,
FromRequestParts, HeaderValue, Headers, Json, Paginate, Path, Query, State, Typed,
ValidatedJson,
};
pub use handler::{
delete_route, get_route, patch_route, post_route, put_route, Handler, HandlerService, Route,
RouteHandler,
};
pub use hateoas::{
CursorPaginated, Link, LinkOrArray, Linkable, PageInfo, Paginated, Resource, ResourceCollection,
};
pub use health::{
HealthCheck, HealthCheckBuilder, HealthCheckResult, HealthEndpointConfig, HealthResponse,
HealthStatus,
};
pub use http::StatusCode;
#[cfg(feature = "http3")]
pub use http3::{Http3Config, Http3Server};
pub use interceptor::{InterceptorChain, RequestInterceptor, ResponseInterceptor};
#[cfg(feature = "compression")]
pub use middleware::CompressionLayer;
pub use middleware::{BodyLimitLayer, RequestId, RequestIdLayer, TracingLayer, DEFAULT_BODY_LIMIT};
#[cfg(feature = "metrics")]
pub use middleware::{MetricsLayer, MetricsResponse};
pub use multipart::{
Multipart, MultipartConfig, MultipartField, StreamingMultipart, StreamingMultipartField,
UploadedFile,
};
pub use path_params::PathParams;
pub use request::{BodyVariant, Request};
pub use response::{
Body as ResponseBody, Created, Html, IntoResponse, NoContent, Redirect, Response, WithStatus,
};
pub use router::{delete, get, patch, post, put, MethodRouter, RouteMatch, Router};
pub use sse::{sse_from_iter, sse_response, KeepAlive, Sse, SseEvent};
pub use static_files::{serve_dir, StaticFile, StaticFileConfig};
pub use stream::{StreamBody, StreamingBody, StreamingConfig};
pub use typed_path::TypedPath;
pub use validation::Validatable;