1mod app;
54pub mod auto_route;
55pub use auto_route::collect_auto_routes;
56pub mod auto_schema;
57pub use auto_schema::apply_auto_schemas;
58mod error;
59mod extract;
60mod handler;
61pub mod hateoas;
62pub mod health;
63#[cfg(feature = "http3")]
64pub mod http3;
65pub mod interceptor;
66pub mod json;
67pub mod middleware;
68pub mod multipart;
69pub mod path_params;
70pub mod path_validation;
71mod request;
72mod response;
73mod router;
74mod server;
75pub mod sse;
76pub mod static_files;
77pub mod stream;
78pub mod typed_path;
79#[macro_use]
80mod tracing_macros;
81
82#[doc(hidden)]
87pub mod __private {
88 pub use crate::auto_route::AUTO_ROUTES;
89 pub use crate::auto_schema::AUTO_SCHEMAS;
90 pub use linkme;
91 pub use rustapi_openapi;
92}
93
94pub use app::{RustApi, RustApiConfig};
96pub use error::{get_environment, ApiError, Environment, FieldError, Result};
97#[cfg(feature = "cookies")]
98pub use extract::Cookies;
99pub use extract::{
100 Body, BodyStream, ClientIp, Extension, FromRequest, FromRequestParts, HeaderValue, Headers,
101 Json, Path, Query, State, Typed, ValidatedJson,
102};
103pub use handler::{
104 delete_route, get_route, patch_route, post_route, put_route, Handler, HandlerService, Route,
105 RouteHandler,
106};
107pub use hateoas::{Link, LinkOrArray, Linkable, PageInfo, Resource, ResourceCollection};
108pub use health::{HealthCheck, HealthCheckBuilder, HealthCheckResult, HealthStatus};
109pub use http::StatusCode;
110#[cfg(feature = "http3")]
111pub use http3::{Http3Config, Http3Server};
112pub use interceptor::{InterceptorChain, RequestInterceptor, ResponseInterceptor};
113#[cfg(feature = "compression")]
114pub use middleware::CompressionLayer;
115pub use middleware::{BodyLimitLayer, RequestId, RequestIdLayer, TracingLayer, DEFAULT_BODY_LIMIT};
116#[cfg(feature = "metrics")]
117pub use middleware::{MetricsLayer, MetricsResponse};
118pub use multipart::{Multipart, MultipartConfig, MultipartField, UploadedFile};
119pub use request::{BodyVariant, Request};
120pub use response::{
121 Body as ResponseBody, Created, Html, IntoResponse, NoContent, Redirect, Response, WithStatus,
122};
123pub use router::{delete, get, patch, post, put, MethodRouter, RouteMatch, Router};
124pub use sse::{sse_response, KeepAlive, Sse, SseEvent};
125pub use static_files::{serve_dir, StaticFile, StaticFileConfig};
126pub use stream::{StreamBody, StreamingBody, StreamingConfig};
127pub use typed_path::TypedPath;