1pub mod extract;
29pub mod guard_integration;
30pub mod ingress;
31pub mod response;
32pub mod service;
33pub mod sse;
34
35#[cfg(feature = "http3")]
36pub mod http3;
37pub mod test_harness;
38
39pub use extract::{CookieJar, DEFAULT_BODY_LIMIT, ExtractError, FromRequest, Header, Json, Path, Query};
40pub use ingress::{
41 HttpIngress, HttpRouteDescriptor, PathParams, Ranvier, WebSocketConnection, WebSocketError,
42 WebSocketEvent, WebSocketSessionContext,
43};
44pub use response::{
45 Html, HttpResponse, IntoProblemDetail, IntoResponse, ProblemDetail, json_error_response,
46 outcome_to_problem_response, outcome_to_response, outcome_to_response_with_error,
47};
48pub use guard_integration::{
49 BusInjectorFn, GuardExec, GuardIntegration, GuardRejection, PreflightConfig, RegisteredGuard,
50 ResponseBodyTransformFn, ResponseExtractorFn,
51};
52pub use service::RanvierService;
53pub use sse::{Sse, SseEvent};
54pub use test_harness::{TestApp, TestHarnessError, TestRequest, TestResponse};
55
56#[macro_export]
76macro_rules! guards {
77 [$($guard:expr),* $(,)?] => {
78 vec![$( $crate::GuardIntegration::register($guard) ),*]
79 };
80}
81
82pub mod prelude {
84 pub use crate::extract::{CookieJar, DEFAULT_BODY_LIMIT, ExtractError, FromRequest, Header, Json, Path, Query};
85 pub use crate::ingress::{
86 HttpIngress, HttpRouteDescriptor, PathParams, Ranvier, WebSocketConnection, WebSocketError,
87 WebSocketEvent, WebSocketSessionContext,
88 };
89 pub use crate::response::{
90 Html, HttpResponse, IntoProblemDetail, IntoResponse, ProblemDetail, json_error_response,
91 outcome_to_problem_response, outcome_to_response, outcome_to_response_with_error,
92 };
93 pub use crate::guard_integration::{
94 BusInjectorFn, GuardExec, GuardIntegration, GuardRejection, PreflightConfig,
95 RegisteredGuard, ResponseBodyTransformFn, ResponseExtractorFn,
96 };
97 pub use crate::service::RanvierService;
98 pub use crate::sse::{Sse, SseEvent};
99 pub use crate::test_harness::{TestApp, TestHarnessError, TestRequest, TestResponse};
100}