structopt_flags/
ip.rs

1use super::GetWithDefault;
2use std::net::{IpAddr, Ipv4Addr, Ipv6Addr};
3use structopt::StructOpt;
4
5#[derive(StructOpt, Debug, Clone)]
6pub struct HostV4Opt {
7    /// Set the host IP (Ipv4 only)
8    #[structopt(name = "hostv4", long = "host", short = "-H", global = true)]
9    host_addr: Option<Ipv4Addr>,
10}
11
12impl GetWithDefault for HostV4Opt {
13    type Item = Ipv4Addr;
14    fn get_with_default<T: Into<Self::Item>>(&self, default: T) -> Self::Item {
15        self.host_addr.unwrap_or_else(|| default.into())
16    }
17}
18
19#[derive(StructOpt, Debug, Clone)]
20pub struct HostV4Param {
21    /// Set the host IP (Ipv4 only)
22    #[structopt(name = "hostv4", long = "host", short = "-H")]
23    pub host_addr: Ipv4Addr,
24}
25
26#[derive(StructOpt, Debug, Clone)]
27pub struct HostV6Opt {
28    /// Set the host IP (Ipv6 only)
29    #[structopt(name = "hostv6", long = "host", short = "-H", global = true)]
30    host_addr: Option<Ipv6Addr>,
31}
32
33impl GetWithDefault for HostV6Opt {
34    type Item = Ipv6Addr;
35    fn get_with_default<T: Into<Self::Item>>(&self, default: T) -> Self::Item {
36        self.host_addr.unwrap_or_else(|| default.into())
37    }
38}
39
40#[derive(StructOpt, Debug, Clone)]
41pub struct HostV6Param {
42    /// Set the host IP (Ipv6 only)
43    #[structopt(name = "hostv6", long = "host", short = "-H")]
44    pub host_addr: Ipv6Addr,
45}
46
47#[derive(StructOpt, Debug, Clone)]
48pub struct HostOpt {
49    /// Set the host IP (both IpV4 and IpV6 are supported)
50    #[structopt(name = "host", long = "host", short = "-H", global = true)]
51    host_addr: Option<IpAddr>,
52}
53
54impl GetWithDefault for HostOpt {
55    type Item = IpAddr;
56    fn get_with_default<T: Into<Self::Item>>(&self, default: T) -> Self::Item {
57        self.host_addr.unwrap_or_else(|| default.into())
58    }
59}
60
61#[derive(StructOpt, Debug, Clone)]
62pub struct HostParam {
63    /// Set the host IP (both IpV4 and IpV6 are supported)
64    #[structopt(name = "host", long = "host", short = "-H")]
65    pub host_addr: IpAddr,
66}