rscanner 0.5.0

Fast scan network by sending icmp, tcp, udp packets, inspired by nmap but doesn't depend on nmap
Documentation
use snafu::prelude::*;
use snafu::Location;
use std::num::ParseIntError;

#[derive(Snafu, Debug)]
#[snafu(visibility(pub))]
pub enum APPError {
    #[snafu(display("split failed because ip or port format is error {}", value))]
    SplitIpPortFailed { location: Location, value: String },

    #[snafu(display("port args format is error {}", value))]
    PortFormat { location: Location, value: String },

    #[snafu(display("port value parse failed {}", source))]
    PortParse {
        location: Location,
        source: ParseIntError,
        value: String,
    },

    #[snafu(display("port couldn't be empty"))]
    PortIsEmpty,

    #[snafu(display("unix ulimits soft limit is bigger than hard limit"))]
    ULimitSoftBiggerThanHard,

    #[snafu(display("Option value is None"))]
    OptionEmpty { location: Location },

    #[snafu(display("common io error {}", source))]
    CommonIo {
        location: Location,
        source: std::io::Error,
    },
}

pub type Result<T> = std::result::Result<T, APPError>;