fn new()

in below/model/src/network.rs [374:450]


    fn new(
        interface: &str,
        sample: &procfs::InterfaceStat,
        last: Option<(&procfs::InterfaceStat, Duration)>,
    ) -> SingleNetModel {
        let rx_bytes_per_sec = last
            .map(|(l, d)| {
                count_per_sec!(
                    l.rx_bytes.map(|s| s as u64),
                    sample.rx_bytes.map(|s| s as u64),
                    d
                )
            })
            .unwrap_or_default();
        let tx_bytes_per_sec = last
            .map(|(l, d)| {
                count_per_sec!(
                    l.tx_bytes.map(|s| s as u64),
                    sample.tx_bytes.map(|s| s as u64),
                    d
                )
            })
            .unwrap_or_default();
        let throughput_per_sec =
            Some(rx_bytes_per_sec.unwrap_or_default() + tx_bytes_per_sec.unwrap_or_default());

        SingleNetModel {
            interface: interface.to_string(),
            rx_bytes_per_sec,
            tx_bytes_per_sec,
            throughput_per_sec,
            rx_packets_per_sec: last
                .map(|(l, d)| {
                    count_per_sec!(
                        l.rx_packets.map(|s| s as u64),
                        sample.rx_packets.map(|s| s as u64),
                        d
                    )
                })
                .unwrap_or_default()
                .map(|s| s as u64),
            tx_packets_per_sec: last
                .map(|(l, d)| {
                    count_per_sec!(
                        l.tx_packets.map(|s| s as u64),
                        sample.tx_packets.map(|s| s as u64),
                        d
                    )
                })
                .unwrap_or_default()
                .map(|s| s as u64),
            collisions: sample.collisions.map(|s| s as u64),
            multicast: sample.multicast.map(|s| s as u64),
            rx_bytes: sample.rx_bytes.map(|s| s as u64),
            rx_compressed: sample.rx_compressed.map(|s| s as u64),
            rx_crc_errors: sample.rx_crc_errors.map(|s| s as u64),
            rx_dropped: sample.rx_dropped.map(|s| s as u64),
            rx_errors: sample.rx_errors.map(|s| s as u64),
            rx_fifo_errors: sample.rx_fifo_errors.map(|s| s as u64),
            rx_frame_errors: sample.rx_frame_errors.map(|s| s as u64),
            rx_length_errors: sample.rx_length_errors.map(|s| s as u64),
            rx_missed_errors: sample.rx_missed_errors.map(|s| s as u64),
            rx_nohandler: sample.rx_nohandler.map(|s| s as u64),
            rx_over_errors: sample.rx_over_errors.map(|s| s as u64),
            rx_packets: sample.rx_packets.map(|s| s as u64),
            tx_aborted_errors: sample.tx_aborted_errors.map(|s| s as u64),
            tx_bytes: sample.tx_bytes.map(|s| s as u64),
            tx_carrier_errors: sample.tx_carrier_errors.map(|s| s as u64),
            tx_compressed: sample.tx_compressed.map(|s| s as u64),
            tx_dropped: sample.tx_dropped.map(|s| s as u64),
            tx_errors: sample.tx_errors.map(|s| s as u64),
            tx_fifo_errors: sample.tx_fifo_errors.map(|s| s as u64),
            tx_heartbeat_errors: sample.tx_heartbeat_errors.map(|s| s as u64),
            tx_packets: sample.tx_packets.map(|s| s as u64),
            tx_window_errors: sample.tx_window_errors.map(|s| s as u64),
        }
    }