rsvart 0.1.5

A small library for representing genomic variants and regions.
Documentation
#[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord)]
pub enum SequenceRole {
    AssembledMolecule,
    UnlocalizedScaffold,
    UnplacedScaffold,
    FixPatch,
    NovelPatch,
    AltScaffold,
    Unknown,
}
impl From<&str> for SequenceRole {
    fn from(value: &str) -> Self {
        match value.to_uppercase().as_str() {
            "ASSEMBLED-MOLECULE" => SequenceRole::AssembledMolecule,
            "UNLOCALIZED-SCAFFOLD" => SequenceRole::UnlocalizedScaffold,
            "UNPLACED-SCAFFOLD" => SequenceRole::UnplacedScaffold,
            "FIX-PATCH" => SequenceRole::FixPatch,
            "NOVEL-PATCH" => SequenceRole::NovelPatch,
            "ALT-SCAFFOLD" => SequenceRole::AltScaffold,
            _ => SequenceRole::Unknown,
        }
    }
}

#[cfg(test)]
mod test {
    use super::SequenceRole;
    use rstest::rstest;

    #[rstest]
    #[case("assembled-molecule", SequenceRole::AssembledMolecule)]
    #[case("unlocalized-scaffold", SequenceRole::UnlocalizedScaffold)]
    #[case("unplaced-scaffold", SequenceRole::UnplacedScaffold)]
    #[case("fix-patch", SequenceRole::FixPatch)]
    #[case("novel-patch", SequenceRole::NovelPatch)]
    #[case("alt-scaffold", SequenceRole::AltScaffold)]
    #[case("fake-nothing", SequenceRole::Unknown)]
    fn test_sequence_role_from(#[case] input: &str, #[case] expected: SequenceRole) {
        assert_eq!(SequenceRole::from(input), expected);
    }
}