summaryrefslogtreecommitdiffstats
path: root/vendor/similar/src/text/mod.rs
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/similar/src/text/mod.rs')
-rw-r--r--vendor/similar/src/text/mod.rs25
1 files changed, 13 insertions, 12 deletions
diff --git a/vendor/similar/src/text/mod.rs b/vendor/similar/src/text/mod.rs
index b1a45f3c3..23408e63c 100644
--- a/vendor/similar/src/text/mod.rs
+++ b/vendor/similar/src/text/mod.rs
@@ -37,23 +37,13 @@ impl Deadline {
/// A builder type config for more complex uses of [`TextDiff`].
///
/// Requires the `text` feature.
-#[derive(Clone, Debug)]
+#[derive(Clone, Debug, Default)]
pub struct TextDiffConfig {
algorithm: Algorithm,
newline_terminated: Option<bool>,
deadline: Option<Deadline>,
}
-impl Default for TextDiffConfig {
- fn default() -> TextDiffConfig {
- TextDiffConfig {
- algorithm: Algorithm::default(),
- newline_terminated: None,
- deadline: None,
- }
- }
-}
-
impl TextDiffConfig {
/// Changes the algorithm.
///
@@ -66,7 +56,7 @@ impl TextDiffConfig {
/// Sets a deadline for the diff operation.
///
/// By default a diff will take as long as it takes. For certain diff
- /// algorthms like Myer's and Patience a maximum running time can be
+ /// algorithms like Myer's and Patience a maximum running time can be
/// defined after which the algorithm gives up and approximates.
pub fn deadline(&mut self, deadline: Instant) -> &mut Self {
self.deadline = Some(Deadline::Absolute(deadline));
@@ -768,3 +758,14 @@ fn test_serde_ops() {
let json = serde_json::to_string_pretty(&changes).unwrap();
insta::assert_snapshot!(&json);
}
+
+#[test]
+fn test_regression_issue_37() {
+ let config = TextDiffConfig::default();
+ let diff = config.diff_lines("\u{18}\n\n", "\n\n\r");
+ let mut output = diff.unified_diff();
+ assert_eq!(
+ output.context_radius(0).to_string(),
+ "@@ -1 +1,0 @@\n-\u{18}\n@@ -2,0 +2,2 @@\n+\n+\r"
+ );
+}