pub mod buffered;
pub mod direct;
pub mod errors;
pub mod futures;
use std::fmt::Debug;
pub use buffered::{Buffer, BufferConfig, BufferedStream};
pub use direct::DirectStream;
pub use errors::CorrelatedStreamError;
pub use futures::{Next, NextVec, NextVecIterator};
use crate::correlated_randomness::Correlation;
pub trait CorrelatedStream<P: Correlation>: Send {
type Error: Debug + Clone + From<CorrelatedStreamError> + Send + 'static;
fn next_n(&self, n_elements: usize) -> Result<NextVec<P, Self::Error>, CorrelatedStreamError>;
}