use std::{convert::TryFrom, ffi::OsString}; pub(crate) enum Color { Black = 0, Red = 1, Green = 2, Yellow = 3, Blue = 4, Magenta = 5, Cyan = 6, White = 7, } impl Default for Color { fn default() -> Self { Color::Blue } } impl TryFrom for Color { type Error = (); fn try_from(s: OsString) -> Result { let s = match s.to_str() { Some(s) => s, None => return Err(()), }; Ok(match s { "black" => Color::Black, "red" => Color::Red, "green" => Color::Green, "yellow" => Color::Yellow, "blue" => Color::Blue, "magenta" => Color::Magenta, "cyan" => Color::Cyan, "white" => Color::White, _ => return Err(()), }) } }