#[cfg(all(doctest, axa_db = "none"))]
#[doc = include_str!("../README.md")]
struct ReadmeDoctests;
#[cfg(all(doctest, feature = "queue"))]
#[doc = include_str!("../help/background-jobs/index.md")]
struct GuideBackgroundJobs;
#[cfg(all(doctest, feature = "idempotency", feature = "paseto"))]
#[doc = include_str!("../help/idempotency-keys/index.md")]
struct GuideIdempotencyKeys;
#[cfg(all(doctest, feature = "idempotency", feature = "paseto", axa_db = "none"))]
#[doc = include_str!("../skill/axa-skill/SKILL.md")]
struct SkillDoctests;
pub mod boot;
pub mod cli;
pub mod client;
pub mod conditional;
pub mod config;
pub mod context;
pub mod db;
pub mod error;
pub mod extract;
pub mod format;
pub mod health;
pub mod logger;
pub mod middleware;
#[cfg(feature = "model")]
pub mod model;
pub mod prelude;
#[cfg(feature = "queue")]
pub mod queue;
pub mod routes;
pub mod server;
pub mod store;
pub mod task;
#[cfg(feature = "model")]
pub mod validation;
pub mod worker;
#[cfg(feature = "versioning")]
pub use axa_accepts_version_negotiation as versioning;
#[cfg(feature = "cursor-pagination")]
pub use axa_cursor_pagination as cursor_pagination;
pub use axa_environment as environment;
#[cfg(feature = "idempotency")]
pub use axa_idempotency_key as idempotency;
#[cfg(feature = "keycloak")]
pub use axa_keycloak_auth as keycloak;
#[cfg(feature = "maud")]
pub use axa_maud_templates as maud;
#[cfg(feature = "mysql-diesel")]
pub use axa_mysql_diesel as mysql_diesel;
#[cfg(feature = "mysql-seaorm")]
pub use axa_mysql_seaorm as mysql_seaorm;
#[cfg(all(feature = "mysql-seaorm", not(feature = "postgres-seaorm")))]
pub use axa_mysql_seaorm::{query, schema};
#[cfg(feature = "mysql-sqlx")]
pub use axa_mysql_sqlx as mysql_sqlx;
#[cfg(feature = "mysql-toasty")]
pub use axa_mysql_toasty as mysql_toasty;
#[cfg(feature = "openapi")]
pub use axa_openapi_docs as openapi;
#[cfg(feature = "opentelemetry")]
pub use axa_opentelemetry as opentelemetry;
#[cfg(feature = "paseto")]
pub use axa_paseto_auth as paseto;
#[cfg(feature = "postgres-diesel")]
pub use axa_postgres_diesel as postgres_diesel;
#[cfg(feature = "postgres-seaorm")]
pub use axa_postgres_seaorm as postgres_seaorm;
#[cfg(feature = "postgres-seaorm")]
pub use axa_postgres_seaorm::{query, schema};
#[cfg(feature = "postgres-sqlx")]
pub use axa_postgres_sqlx as postgres_sqlx;
#[cfg(feature = "postgres-toasty")]
pub use axa_postgres_toasty as postgres_toasty;
pub use axa_problem as problem;
#[cfg(feature = "prometheus")]
pub use axa_prometheus_metrics as prometheus;
#[cfg(feature = "redis")]
pub use axa_redis_cache as redis;
#[cfg(feature = "ratelimit")]
pub use axa_request_rate_limit as ratelimit;
#[cfg(feature = "sqlite-diesel")]
pub use axa_sqlite_diesel as sqlite_diesel;
#[cfg(feature = "sqlite-seaorm")]
pub use axa_sqlite_seaorm as sqlite_seaorm;
#[cfg(all(
feature = "sqlite-seaorm",
not(any(feature = "postgres-seaorm", feature = "mysql-seaorm"))
))]
pub use axa_sqlite_seaorm::{query, schema};
#[cfg(feature = "sqlite-sqlx")]
pub use axa_sqlite_sqlx as sqlite_sqlx;
#[cfg(feature = "tera")]
pub use axa_tera_templates as tera;
#[cfg(feature = "tracing")]
pub use axa_tracing as tracing;
#[cfg(feature = "outbox")]
pub use axa_transactional_outbox as outbox;
#[cfg(feature = "session")]
pub use axa_web_session as session;
pub use context::AppContext;
pub use environment::Environment;
pub use error::{Error, Result};