bio-streams 0.5.0

Streaming bioinformatics data types
Documentation
use core::error;
use core::fmt;

#[derive(Debug, PartialEq)]
pub enum FastxError {
    InvalidSeparationLine,
    InvalidId(String),
    TruncatedRecord,
    InvalidSequence(String),
    InvalidQuality,
    FileError,
}

impl fmt::Display for FastxError {
    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
        match self {
            FastxError::InvalidSeparationLine => write!(f, "Invalid separation character"),
            FastxError::InvalidId(id) => write!(f, "Invalid id: {id}"),
            FastxError::TruncatedRecord => write!(f, "Truncated record"),
            FastxError::InvalidSequence(seq) => write!(f, "Invalid sequence: {seq}"),
            FastxError::InvalidQuality => write!(f, "Invalid quailty string"),
            FastxError::FileError => write!(f, "File error"),
        }
    }
}

impl error::Error for FastxError {}