html-diff 0.0.6

Library detect HTML diffs
Documentation
extern crate html_diff;

use std::env;
use std::fs::File;
use std::io::{self, Read};
use std::path::Path;

fn get_file_content<P: AsRef<Path>>(p: &P) -> io::Result<String> {
    let mut f = File::open(p)?;
    let mut buffer = String::with_capacity(1000);
    f.read_to_string(&mut buffer)?;
    Ok(buffer)
}

fn print_error(arg: &str, v: io::Result<String>) {
    if let Err(err) = v {
        println!("\"{}\": error: {}", arg, err);
    }
}

fn main() {
    let args: Vec<String> = env::args().skip(1).collect();
    if args.len() & 1 != 0 {
        println!("Need to pass an even number of HTML files");
        return
    }
    for args in args.chunks(2) {
        let arg1 = &args[0];
        let arg2 = &args[1];
        match (get_file_content(&arg1), get_file_content(&arg2)) {
            (Ok(content1), Ok(content2)) => {
                let differences = html_diff::get_differences(&content1, &content2);
                for diff in differences {
                    println!("=> {}", diff.to_string());
                }
            }
            (x, y) => {
                print_error(arg1, x);
                print_error(arg2, y);
            }
        }
    }
}