use super::theme::ColoredTheme;
use dialoguer::OrderList;
use std::io::Result;
use structopt::StructOpt;
#[derive(Debug, StructOpt)]
pub struct Sort {
#[structopt(short, long)]
message: String,
#[structopt(short, long)]
paged: bool,
#[structopt(long)]
no_inline: bool,
items: Vec<String>,
}
impl Sort {
pub fn run(&self) -> Result<()> {
let item_len = self.items.len();
if item_len == 0 {
return Ok(());
}
let theme = ColoredTheme::default()
.set_sort(true)
.inline_selections(!self.no_inline);
let mut input = OrderList::with_theme(&theme);
input
.with_prompt(&self.message)
.paged(self.paged)
.clear(true)
.items(&self.items);
let value = input.interact()?;
for i in value {
println!("{}", self.items[i]);
}
Ok(())
}
}