#[cfg(feature = "serde")]
use serde::{Deserialize, Serialize};
use strum_macros::{AsRefStr, Display};
use SequenceReadPairOrientation::None;
pub type Base = u8;
pub type AminoAcid = u8;
pub type Sequence = Vec<u8>;
pub trait SequenceRead {
fn name(&self) -> &[u8];
fn base(&self, i: usize) -> u8;
fn base_qual(&self, i: usize) -> u8;
fn len(&self) -> usize;
fn is_empty(&self) -> bool {
self.len() == 0
}
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, AsRefStr, Display)]
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
pub enum SequenceReadPairOrientation {
F1R2,
F2R1,
R1F2,
R2F1,
F1F2,
R1R2,
F2F1,
R2R1,
None,
}
impl Default for SequenceReadPairOrientation {
fn default() -> Self {
None
}
}