Skip to content

bplevin36/libxdiff-rs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 

Repository files navigation

libxdiff

Safe, idiomatic Rust bindings for the libxdiff C library.

Crates.io docs

Usage

Add this to your Cargo.toml:

[dependencies]
libxdiff = "0.2"

Example

use core::str::from_utf8;
use libxdiff::MMFile;

let mut f1 = MMFile::from_bytes(b"hello world\n");
let mut f2 = MMFile::from_bytes(b"hello world!\n");
let mut diff_lines = Vec::<String>::new();
f1.diff_raw(&mut f2, |line: &[u8]| {
    diff_lines.push(from_utf8(line).unwrap().to_owned());
})
.unwrap();
assert_eq!(
    diff_lines,
    vec![
        "@@ -1,1 +1,1 @@\n",
        "-", "hello world\n",
        "+", "hello world!\n",
    ],
);

Linkage

Upstream libxdiff is small and has no dependencies, so this crate links it statically.

About

Rust bindings for the libxdiff library

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages