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