#![doc = include_str!("../README.md")]
#![deny(missing_docs)]
#![cfg_attr(test, deny(warnings))]
mod facade {
pub mod config {
pub mod initial;
#[cfg(feature = "config-live")]
pub mod live;
pub mod error;
}
pub mod dotenv;
#[cfg(any(
feature = "database-mysql",
feature = "database-postgres",
feature = "database-sqlite",
))]
pub mod database;
#[cfg(feature = "rabbitmq")]
pub mod rabbitmq;
}
pub use self::facade::config::error::AppConfigError;
pub use self::facade::config::initial::AppConfig;
#[cfg(feature = "config-live")]
pub use self::facade::config::live::AppLiveConfig;
pub use self::facade::dotenv::DotEnv;
#[cfg(any(
feature = "database-mysql",
feature = "database-postgres",
feature = "database-sqlite",
))]
pub use self::facade::database::Database;
#[cfg(feature = "rabbitmq")]
pub use self::facade::rabbitmq::RabbitMq;
pub use strut_core::*;
pub use tokio;
pub use strut_config as config;
#[cfg(feature = "tracing")]
pub use tracing;
#[cfg(any(
feature = "database-mysql",
feature = "database-postgres",
feature = "database-sqlite",
))]
pub use strut_database as database;
#[cfg(feature = "rabbitmq")]
pub use strut_rabbitmq as rabbitmq;
mod launchpad;
pub use self::launchpad::wiring::configuration::ConfigurationWiring;
pub use self::launchpad::wiring::preflight::PreflightWiring;
pub use self::launchpad::wiring::runtime::RuntimeWiring;
pub use self::launchpad::Launchpad;
mod app;
pub use self::app::App;
pub use strut_factory::main;