quick-file-transfer 0.10.2

Transfer files quickly, safely, and painlessly between hosts on a local network
Documentation
use super::compression_result::{print_results_as_table, CompressionResult, Finished};

pub fn evaluate_and_printout_results(compression_results: &[CompressionResult<Finished>]) {
    let mut fastest_compression: Option<&CompressionResult<Finished>> = None;
    let mut fastest_decompression: Option<&CompressionResult<Finished>> = None;
    let mut best_ratio: Option<&CompressionResult<Finished>> = None;
    let results_count = compression_results.len();
    for r in compression_results {
        if fastest_compression.is_none() && results_count > 1 {
            fastest_compression = Some(r);
            fastest_decompression = Some(r);
            best_ratio = Some(r);
        }
        if let Some(f_compr) = fastest_compression {
            if f_compr.compression_time > r.compression_time {
                fastest_compression = Some(r);
            }
        }
        if let Some(f_decompr) = fastest_decompression {
            if f_decompr.decompression_time > r.decompression_time {
                fastest_decompression = Some(r);
            }
        }
        if let Some(br) = best_ratio {
            if br.compressed_size > r.compressed_size {
                best_ratio = Some(r);
            }
        }
        debug_assert!(best_ratio.is_some());
        debug_assert!(fastest_compression.is_some());
        debug_assert!(fastest_decompression.is_some());
    }

    if let (Some(f_compr), Some(f_decompr), Some(br)) =
        (fastest_compression, fastest_decompression, best_ratio)
    {
        print_results_as_table(f_compr, f_decompr, br);
    }
}