tmux_interface 0.4.0

Rust language library for communication with TMUX via CLI
Documentation
use std::fmt;
use std::str::FromStr;

const ON: &str = "on";
const FOCUS: &str = "focus";
const LEFT_MARKER: &str = "left-marker";
const RIGHT_MARKER: &str = "right-marker";

#[derive(Clone, Eq, PartialEq, Ord, PartialOrd, Hash, Debug)]
pub enum List {
    On,
    Focus,
    LeftMarker,
    RightMarker,
}

impl fmt::Display for List {
    fn fmt<'a>(&self, f: &mut fmt::Formatter) -> fmt::Result {
        let s = match self {
            Self::On => ON,
            Self::Focus => FOCUS,
            Self::LeftMarker => LEFT_MARKER,
            Self::RightMarker => RIGHT_MARKER,
        };
        write!(f, "{}", s)
    }
}

impl FromStr for List {
    type Err = ();

    fn from_str(s: &str) -> Result<Self, Self::Err> {
        match s {
            ON => Ok(Self::On),
            FOCUS => Ok(Self::Focus),
            LEFT_MARKER => Ok(Self::LeftMarker),
            RIGHT_MARKER => Ok(Self::RightMarker),
            _ => Err(()),
        }
    }
}