mod scheduler;
pub mod throttle;

pub use scheduler::Pipe;
pub use scheduler::PipeIter;
pub use scheduler::Pipeline;
pub use scheduler::PipelineError;
pub use scheduler::SharedFlatFn;
pub use scheduler::SharedFn;
pub use scheduler::SinkFn;
pub use scheduler::SourceFn;
pub use scheduler::Stage;
pub use scheduler::WorkerPool;
pub use throttle::Throttle;
pub use throttle::ThrottleGuard;
pub use throttle::Throttled;
pub use throttle::throttle;

/// Re-export de `crossbeam_channel::Sender` utilisé dans les macros flat transform.
/// Permet aux macros `make_flat_transform!` / `make_flat_transform_fallible!` d'utiliser
/// `$crate::PipelineSender` sans que le crate appelant n'ait besoin de dépendre
/// directement de `crossbeam_channel`.
pub use crossbeam_channel::Sender as PipelineSender;

// make_sink, make_sink_fallible, make_source, make_source_fallible,
// make_transform, make_transform_fallible, make_flat_transform,
// make_flat_transform_fallible sont exportés à la racine du crate via #[macro_export]
