use std::fs::File;

#[derive(Debug)]
pub enum State {
    Start,
    Transient,
    Closed,
}

// no reason, just showing off
impl From<&'a str> for State {
    fn from(s: &'a str) -> Self {
        match s {
            "start" => State::Start,
            "closed" => State::Transient,
            _ => unreachable!(),
        }
    }
}

fn main() {
    let mut f = File::open("foo.txt").unwrap();
    let mut s = String::new();
    f.read_to_string(&mut s);
    let state: State = From::from(&s[..6]);
    println!("{:?}", state);
}
