use std::net::IpAddr;
use structopt::StructOpt;
fn parse_interface(src: &str) -> Result<IpAddr, std::net::AddrParseError> {
src.parse::<IpAddr>()
}
#[derive(StructOpt, Clone, Debug)]
#[structopt(
name = "proby",
author,
about,
global_settings = &[structopt::clap::AppSettings::ColoredHelp],
)]
pub struct ProbyConfig {
#[structopt(short, long)]
pub quiet: bool,
#[structopt(short, long, conflicts_with = "quiet")]
pub verbose: bool,
#[structopt(
short,
long,
parse(try_from_str = parse_interface),
number_of_values = 1,
default_value = "0.0.0.0"
)]
pub interfaces: Vec<IpAddr>,
#[structopt(short, long, default_value = "8080")]
pub port: u16,
}