use ferristype::{list_installed_language, FerrisType};
use itertools::Itertools;
use structopt::StructOpt;
#[derive(Debug, StructOpt)]
struct App {
#[structopt(default_value = "10")]
words: usize,
#[structopt(short, long, default_value = "english")]
language: String,
#[structopt(long = "list")]
list: bool,
#[structopt(short = "p", long, default_value = "3")]
line_peek: u16,
}
fn main() -> std::io::Result<()> {
let app = App::from_args();
if let true = app.list {
list_installed_language()?
.iter()
.sorted_by(|a, b| Ord::cmp(a, b))
.for_each(|x| println!("{:?}", x));
return Ok(());
}
let game = FerrisType::words(app.language, app.words).line_peek(app.line_peek);
game.play()
}