summaryrefslogtreecommitdiffstats
path: root/vendor/similar/README.md
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-04 12:47:55 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-04 12:47:55 +0000
commit2aadc03ef15cb5ca5cc2af8a7c08e070742f0ac4 (patch)
tree033cc839730fda84ff08db877037977be94e5e3a /vendor/similar/README.md
parentInitial commit. (diff)
downloadcargo-upstream.tar.xz
cargo-upstream.zip
Adding upstream version 0.70.1+ds1.upstream/0.70.1+ds1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'vendor/similar/README.md')
-rw-r--r--vendor/similar/README.md60
1 files changed, 60 insertions, 0 deletions
diff --git a/vendor/similar/README.md b/vendor/similar/README.md
new file mode 100644
index 0000000..75b6c6c
--- /dev/null
+++ b/vendor/similar/README.md
@@ -0,0 +1,60 @@
+# Similar: A Diffing Library
+
+[![Build Status](https://github.com/mitsuhiko/similar/workflows/Tests/badge.svg?branch=main)](https://github.com/mitsuhiko/similar/actions?query=workflow%3ATests)
+[![Crates.io](https://img.shields.io/crates/d/similar.svg)](https://crates.io/crates/similar)
+[![License](https://img.shields.io/github/license/mitsuhiko/similar)](https://github.com/mitsuhiko/similar/blob/main/LICENSE)
+[![rustc 1.41.0](https://img.shields.io/badge/rust-1.41%2B-orange.svg)](https://img.shields.io/badge/rust-1.41%2B-orange.svg)
+[![Documentation](https://docs.rs/similar/badge.svg)](https://docs.rs/similar)
+
+Similar is a dependency free crate for Rust that implements different diffing
+algorithms and high level interfaces for it. It is based on the
+[pijul](https://pijul.org/) implementation of the Patience algorithm and
+inherits some ideas from there. It also incorporates the Myer's diff
+algorithm which was largely written by Brandon Williams. This library was
+built for the [insta snapshot testing library](https://insta.rs).
+
+```rust
+use similar::{ChangeTag, TextDiff};
+
+fn main() {
+ let diff = TextDiff::from_lines(
+ "Hello World\nThis is the second line.\nThis is the third.",
+ "Hallo Welt\nThis is the second line.\nThis is life.\nMoar and more",
+ );
+
+ for change in diff.iter_all_changes() {
+ let sign = match change.tag() {
+ ChangeTag::Delete => "-",
+ ChangeTag::Insert => "+",
+ ChangeTag::Equal => " ",
+ };
+ print!("{}{}", sign, change);
+ }
+}
+```
+
+## Screenshot
+
+![terminal highlighting](https://raw.githubusercontent.com/mitsuhiko/similar/main/assets/terminal-inline.png)
+
+## What's in the box?
+
+* Myer's diff
+* Patience diff
+* Hunt–McIlroy / Hunt–Szymanski LCS diff
+* Diffing on arbitrary comparable sequences
+* Line, word, character and grapheme level diffing
+* Text and Byte diffing
+* Unified diff generation
+
+## Related Projects
+
+* [insta](https://insta.rs) snapshot testing library
+* [similar-asserts](https://github.com/mitsuhiko/similar-asserts) assertion library
+
+## License and Links
+
+* [Documentation](https://docs.rs/similar/)
+* [Issue Tracker](https://github.com/mitsuhiko/similar/issues)
+* [Examples](https://github.com/mitsuhiko/similar/tree/main/examples)
+* License: [Apache-2.0](https://github.com/mitsuhiko/similar/blob/main/LICENSE)