unimap 0.2.0

Scan only once by IP address and reduce scan times with Nmap for large amounts of data.
Documentation
use {
    crate::nmap::Port,
    std::{collections::HashSet, time::Instant},
};

#[derive(Clone, Debug)]
pub struct Args {
    pub target: String,
    pub file_name: String,
    pub version: String,
    pub logs_dir: String,
    pub threads: usize,
    pub initial_port: usize,
    pub last_port: usize,
    pub with_output: bool,
    pub unique_output_flag: bool,
    pub min_rate: usize,
    pub from_file_flag: bool,
    pub quiet_flag: bool,
    pub custom_resolvers: bool,
    pub custom_ports_range: bool,
    pub keep_nmap_logs: bool,
    pub fast_scan: bool,
    pub files: Vec<String>,
    pub resolvers: Vec<String>,
    pub targets: HashSet<String>,
    pub time_wasted: Instant,
}

#[derive(Clone, Debug, Eq, PartialEq, Hash)]
pub struct ResolvData {
    pub ip: String,
    pub ports_data: Vec<Port>,
}
impl ResolvData {
    pub fn default() -> ResolvData {
        ResolvData {
            ip: String::new(),
            ports_data: Vec::new(),
        }
    }
}