pub mod error;
pub mod message;
pub mod worker;
pub mod pool;
pub mod strategies;
pub mod builder;
pub mod backends;
pub mod middleware;
pub mod metrics;
pub mod health;
pub mod dlq;
pub mod batch;
pub mod batch_processor;
pub mod http;
pub mod stress;
pub use crate::error::{WorkerError, WorkerResult};
pub use crate::message::{AckHandle, Message, MessageMetadata, ReceivedMessage};
pub use crate::worker::{BackoffStrategy, Worker};
pub use crate::pool::WorkerPool;
pub use crate::strategies::LoadBalancingStrategy;
pub use crate::builder::WorkerPoolBuilder;
pub use crate::backends::{MessageBackend, MemoryBackend};
pub use crate::backends::{ResilientBackend, ResilientBackendBuilder, ReconnectStrategy};
#[cfg(feature = "rabbitmq")]
pub use crate::backends::{RabbitMqBackend, RabbitMqConsumerConfig};
#[cfg(feature = "redis-stream")]
pub use crate::backends::{RedisStreamBackend, RedisStreamConsumerConfig};
pub use crate::middleware::{
Middleware, MessageHandler, MiddlewareChain,
ack_nack::AckNackMiddleware,
circuit_breaker::CircuitBreakerMiddleware,
tracing::TracingMiddleware,
retry_handler::RetryHandler,
batch::BatchMiddleware,
processing_timeout::ProcessingTimeoutMiddleware,
};
#[cfg(feature = "rate-limit")]
pub use crate::middleware::rate_limit::RateLimitMiddleware;
#[cfg(feature = "metrics")]
pub use crate::metrics::MetricsCollector;
#[cfg(not(feature = "metrics"))]
pub use crate::metrics::NoOpMetrics as MetricsCollector;
pub use crate::health::{HealthCheck, HealthStatus, WorkerPoolHealth, WorkerHealth};
pub use crate::dlq::{DeadLetterMessage, PoisonPillConfig, PoisonPillTracker};
pub use crate::batch::{BatchHandler, BatchConfig, MessageBatch, ReceivedBatchMessage, BatchMetadata, BatchStatus};
pub use crate::batch_processor::BatchProcessor;
pub mod prelude {
pub use crate::error::{WorkerError, WorkerResult};
pub use crate::message::{AckHandle, Message, MessageMetadata, ReceivedMessage, ReceivedJsonMessage};
pub use crate::worker::{BackoffStrategy, Worker};
pub use crate::pool::WorkerPool;
pub use crate::strategies::LoadBalancingStrategy;
pub use crate::builder::WorkerPoolBuilder;
pub use crate::backends::{MessageBackend, MemoryBackend};
pub use crate::backends::ReceiveResult;
pub use crate::backends::{ResilientBackend, ResilientBackendBuilder, ReconnectStrategy};
#[cfg(feature = "rabbitmq")]
pub use crate::backends::{RabbitMqBackend, RabbitMqConsumerConfig};
#[cfg(feature = "redis-stream")]
pub use crate::backends::{RedisStreamBackend, RedisStreamConsumerConfig};
pub use crate::middleware::{Middleware, MessageHandler, MiddlewareChain};
pub use crate::middleware::ack_nack::AckNackMiddleware;
#[cfg(feature = "rate-limit")]
pub use crate::middleware::rate_limit::RateLimitMiddleware;
pub use crate::middleware::circuit_breaker::CircuitBreakerMiddleware;
pub use crate::middleware::tracing::TracingMiddleware;
pub use crate::middleware::retry_handler::RetryHandler;
pub use crate::middleware::processing_timeout::ProcessingTimeoutMiddleware;
pub use crate::metrics::WorkerMetrics;
#[cfg(feature = "metrics")]
pub use crate::metrics::MetricsCollector;
#[cfg(not(feature = "metrics"))]
pub use crate::metrics::NoOpMetrics as MetricsCollector;
pub use crate::health::{HealthCheck, HealthStatus, WorkerPoolHealth, WorkerHealth};
}