1use std::sync::OnceLock;
2
3pub mod enums;
4pub mod results;
5
6#[cfg(feature = "redis")]
7pub mod redis;
8
9#[cfg(feature = "cache")]
10pub mod cache;
11#[cfg(feature = "database")]
12pub mod database;
13mod env;
14pub mod ext;
15mod ext_impl;
16pub mod helpers;
17#[cfg(feature = "http")]
18pub mod http;
19#[cfg(feature = "rabbitmq")]
20pub mod rabbitmq;
21pub mod setup;
22pub mod tokio;
23
24pub static FOXTIVE: OnceLock<FoxtiveState> = OnceLock::new();
25
26pub use crate::setup::state::{FoxtiveHelpers, FoxtiveState};
27pub use ::http::StatusCode;
28pub use anyhow::Error;
29pub use async_trait::async_trait;
30pub use env::Environment;
31#[cfg(feature = "templating")]
32pub use tera::Context as TemplateContext;
33
34pub mod prelude {
35 pub use crate::enums::app_message::AppMessage;
36 pub use crate::ext::app_state::AppStateExt;
37 #[cfg(feature = "rabbitmq")]
38 pub use crate::rabbitmq::RabbitMQ;
39 #[cfg(feature = "redis")]
40 pub use crate::redis::Redis;
41 pub use crate::results::{AppResult, app_result::IntoAppResult};
42}