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