thwack 0.10.7

Command line version of Go To File utility, similar to the one on GitHub
Documentation
#[derive(Debug, Copy, Clone, PartialEq)]
pub(crate) enum StatusLine {
    Absolute,
    Relative,
    None,
}

impl TryFrom<String> for StatusLine {
    type Error = (String, String);

    fn try_from(value: String) -> std::result::Result<Self, Self::Error> {
        match value.as_ref() {
            "absolute" => Ok(StatusLine::Absolute),
            "relative" => Ok(StatusLine::Relative),
            "none" => Ok(StatusLine::None),
            _ => Err((
                "The possible value is one of \"absolute\", \"relative\", or \"none\"".to_string(),
                value,
            )),
        }
    }
}

#[cfg(test)]
mod tests {
    use super::*;

    #[test]
    fn try_from() {
        assert_eq!(
            StatusLine::try_from("absolute".to_string()),
            Ok(StatusLine::Absolute)
        );
        assert_eq!(
            StatusLine::try_from("relative".to_string()),
            Ok(StatusLine::Relative)
        );
        assert_eq!(
            StatusLine::try_from("none".to_string()),
            Ok(StatusLine::None)
        );
        assert_eq!(
            StatusLine::try_from("invalid".to_string()),
            Err((
                "The possible value is one of \"absolute\", \"relative\", or \"none\"".to_string(),
                "invalid".to_string(),
            ))
        );
    }
}