pub mod context;
pub mod error;
#[cfg(feature = "io")]
pub mod io;
#[cfg(feature = "compute")]
pub mod compute;
#[cfg(feature = "bg")]
pub mod bg;
#[cfg(feature = "resiliency")]
pub mod retry;
#[cfg(feature = "resiliency")]
pub mod circuit_breaker;
#[cfg(feature = "resiliency")]
pub mod timeout;
#[cfg(feature = "traffic")]
pub mod ratelimit;
#[cfg(feature = "traffic")]
pub mod backpressure;
#[cfg(feature = "traffic")]
pub mod concurrency;
#[cfg(feature = "traffic")]
pub mod pool;
#[cfg(feature = "lifecycle")]
pub mod shutdown;
#[cfg(feature = "lifecycle")]
pub mod cron;
#[cfg(feature = "lifecycle")]
pub mod health;
#[cfg(feature = "lifecycle")]
pub mod leader;
#[cfg(feature = "lifecycle")]
pub mod lifecycle;
#[cfg(feature = "observability")]
pub mod metrics;
#[cfg(feature = "observability")]
pub mod panic_tracker;
#[cfg(feature = "observability")]
pub mod metrics_bridge;
#[cfg(feature = "resiliency")]
pub mod service_builder;
#[cfg(feature = "lifecycle")]
pub mod dlock;
pub use context::{context, EngineContext};
pub use error::MytheclipseError;
#[cfg(feature = "io")]
pub use io::spawn_io;
#[cfg(feature = "compute")]
pub use compute::compute;
#[cfg(feature = "bg")]
pub use bg::spawn_bg;
#[cfg(feature = "resiliency")]
pub use retry::{retry, JitterKind, RetryConfig, RetryError};
#[cfg(feature = "resiliency")]
pub use circuit_breaker::{CircuitBreaker, CircuitBreakerConfig, CircuitError, CircuitState};
#[cfg(feature = "resiliency")]
pub use timeout::{timeout, with_timeout, Timeout, TimeoutError};
#[cfg(feature = "traffic")]
pub use ratelimit::{RateLimitError, RateLimiter};
#[cfg(feature = "traffic")]
pub use backpressure::{BackpressureError, BackpressureQueue, OverflowPolicy};
#[cfg(feature = "traffic")]
pub use concurrency::{ConcurrencyLimiter, ConcurrencyPermit};
#[cfg(feature = "traffic")]
pub use pool::{Pool, PoolError, Pooled, SemaphorePool};
#[cfg(feature = "lifecycle")]
pub use shutdown::{ShutdownManager, ShutdownSignal};
#[cfg(feature = "lifecycle")]
pub use cron::{schedule, CronError, CronJob, CronParseError, CronSchedule};
#[cfg(feature = "lifecycle")]
pub use health::{HealthCheck, HealthRegistry, HealthStatus};
#[cfg(feature = "lifecycle")]
pub use leader::{InProcLeaderElection, LeaderElection};
#[cfg(feature = "resiliency")]
pub use service_builder::ServiceBuilder;
#[cfg(feature = "lifecycle")]
pub use dlock::{DistributedLock, LockError, LockGuard, InProcLock};
#[cfg(feature = "lifecycle")]
pub use lifecycle::AsyncLifecycleManager;
#[cfg(feature = "observability")]
pub use metrics::{MetricsCollector, MetricsSnapshot};
#[cfg(feature = "observability")]
pub use metrics_bridge::{MetricsBridge, MetricsHealthCheck};
#[cfg(feature = "observability")]
pub use panic_tracker::{PanicGuard, PanicInfo, PanicTracker};
pub fn init() -> &'static EngineContext {
context::init()
}