use std::collections::HashSet;
use std::collections::BTreeSet;
use std::fmt::{ Display, Formatter, Result };
pub struct PosBuilder<'n> {
pub name: &'n str,
pub help: Option<&'n str>,
pub required: bool,
pub multiple: bool,
pub requires: Option<HashSet<&'n str>>,
pub blacklist: Option<HashSet<&'n str>>,
pub possible_vals: Option<BTreeSet<&'n str>>,
pub index: u8,
pub num_vals: Option<u8>,
pub max_vals: Option<u8>,
pub min_vals: Option<u8>,
pub empty_vals: bool,
pub global: bool
}
impl<'n> Display for PosBuilder<'n> {
fn fmt(&self, f: &mut Formatter) -> Result {
write!(f, "{}{}{}{}",
if self.required { "<" } else {"["},
self.name,
if self.required { ">" } else {"]"},
if self.multiple {"..."}else{""})
}
}