mod cursor_reader;
mod file_reader;
mod ftp_reader;
mod gcs_reader;
mod http_reader;
mod one_drive_reader;
mod s3_reader;
mod sftp_reader;
use crate::StreamData;
use crate::error::Error;
use async_std::channel::Sender;
use async_trait::async_trait;
#[async_trait]
pub trait StreamReader {
async fn read_stream(
&self,
path: &str,
sender: Sender<StreamData>,
channel: &dyn ReaderNotification,
) -> Result<u64, Error>;
}
pub trait ReaderNotification: Sync + Send {
fn is_stopped(&self) -> bool {
false
}
}
pub struct SimpleReader {}
impl ReaderNotification for SimpleReader {}