use crate::interface::sequence::GenomeSequence;
pub trait SequenceStore {
type Handle;
type SequenceRef: for<'a> GenomeSequence<'a, Self::SequenceRef> + ?Sized;
fn add<
Sequence: for<'a> GenomeSequence<'a, Subsequence> + ?Sized,
Subsequence: for<'a> GenomeSequence<'a, Subsequence> + ?Sized,
>(
&mut self,
s: &Sequence,
) -> Self::Handle;
fn get(&self, handle: &Self::Handle) -> &Self::SequenceRef;
}
pub trait HandleWithLength {
fn len(&self) -> usize;
fn is_empty(&self) -> bool {
self.len() == 0
}
}