use crate::genome::Genome;
use crate::io::dtype::Numeric;
use crate::io::error::Result;
use ndarray::ArrayViewMut2;
pub trait ValueReader: Send + Sync {
type Item: Numeric;
fn contigs(&self) -> &Genome;
fn n_fields(&self) -> usize;
fn read_into(
&self,
contig_name: &str,
start: u64,
end: u64,
dst: ArrayViewMut2<'_, Self::Item>,
) -> Result<()>;
fn fork(&self) -> Result<Self>
where
Self: Sized;
}