summaryrefslogtreecommitdiffstats
path: root/vendor/similar/README.md
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-04 12:41:41 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-04 12:41:41 +0000
commit10ee2acdd26a7f1298c6f6d6b7af9b469fe29b87 (patch)
treebdffd5d80c26cf4a7a518281a204be1ace85b4c1 /vendor/similar/README.md
parentReleasing progress-linux version 1.70.0+dfsg1-9~progress7.99u1. (diff)
downloadrustc-10ee2acdd26a7f1298c6f6d6b7af9b469fe29b87.tar.xz
rustc-10ee2acdd26a7f1298c6f6d6b7af9b469fe29b87.zip
Merging upstream version 1.70.0+dfsg2.
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 000000000..9e033700a
--- /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)
+[![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)
+