mod input;
mod memory;
mod output;
mod std_io;
pub use input::InputProvider;
#[cfg(feature = "async")]
pub use memory::AsyncInMemorySource;
pub use memory::{InMemorySink, InMemorySource};
pub use output::OutputTarget;
pub use std_io::{FileInput, FileOutput, StderrOutput, StdinInput, StdoutOutput};
#[cfg(feature = "async")]
mod async_input;
#[cfg(feature = "async")]
mod async_output;
#[cfg(feature = "async")]
mod async_std_io;
#[cfg(feature = "async")]
pub use async_input::AsyncInputProvider;
#[cfg(feature = "async")]
pub use async_output::AsyncOutputTarget;
#[cfg(feature = "async")]
pub use async_std_io::{
AsyncFileInput, AsyncFileOutput, AsyncStderrOutput, AsyncStdinInput, AsyncStdoutOutput,
};