diff options
Diffstat (limited to 'vendor/similar/src/text/mod.rs')
-rw-r--r-- | vendor/similar/src/text/mod.rs | 25 |
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" + ); +} |