thediff 0.1.0

Difference between 2 files in percentages
Documentation
use std::{fs::read, io, path::Path};

use distance::levenshtein;

fn calculate_diff(content1: &str, content2: &str) -> (f64, f64) {
    let diff_chars_count = levenshtein(content1, content2);

    // Percentage
    let max_len = content1.chars().count().max(content2.chars().count());
    let diff_percentage = (diff_chars_count as f64 / max_len as f64) * 100.0;
    let same_percatage = 100.0 - diff_percentage;

    (diff_percentage, same_percatage)
}

pub fn thediff(path1: &Path, path2: &Path) -> io::Result<(f64, f64)> {
    let k1 = read(path1)?;
    let k2 = read(path2)?;

    let k1_str: &str = &String::from_utf8_lossy(&k1);
    let k2_str: &str = &String::from_utf8_lossy(&k2);

    Ok(calculate_diff(k1_str, k2_str))
}

pub async fn thediff_async(path1: &Path, path2: &Path) -> io::Result<(f64, f64)> {
    let k1 = tokio::fs::read(path1).await?;
    let k2 = tokio::fs::read(path2).await?;

    let k1_str: &str = &String::from_utf8_lossy(&k1);
    let k2_str: &str = &String::from_utf8_lossy(&k2);

    Ok(calculate_diff(k1_str, k2_str))
}