use crate::interface::alphabet::Alphabet;
use crate::interface::sequence::{GenomeSequence, GenomeSequenceMut, OwnedGenomeSequence};
pub trait Kmer<
const K: usize,
AlphabetType: Alphabet,
GenomeSubsequence: GenomeSequence<AlphabetType, GenomeSubsequence> + ?Sized,
>: GenomeSequence<AlphabetType, GenomeSubsequence>
{
fn k() -> usize {
K
}
}
pub trait OwnedKmer<
const K: usize,
AlphabetType: Alphabet,
GenomeSubsequence: GenomeSequence<AlphabetType, GenomeSubsequence> + ?Sized,
>: OwnedGenomeSequence<AlphabetType, GenomeSubsequence>
{
}
pub trait KmerMut<
AlphabetType: Alphabet,
GenomeSubsequenceMut: GenomeSequenceMut<AlphabetType, GenomeSubsequenceMut> + ?Sized,
>: GenomeSequenceMut<AlphabetType, GenomeSubsequenceMut>
{
}