semdiff_differ_text/
report_summary.rs1use crate::{TextDiff, TextDiffReporter, is_text_file};
2use semdiff_core::fs::FileLeaf;
3use semdiff_core::{DetailReporter, MayUnsupported};
4use semdiff_output::summary::SummaryReport;
5use std::convert;
6
7impl<W> DetailReporter<TextDiff, FileLeaf, SummaryReport<W>> for TextDiffReporter {
8 type Error = convert::Infallible;
9
10 fn report_unchanged(
11 &self,
12 _name: &str,
13 _diff: &TextDiff,
14 reporter: &SummaryReport<W>,
15 ) -> Result<MayUnsupported<()>, Self::Error> {
16 reporter.increment_unchanged();
17 Ok(MayUnsupported::Ok(()))
18 }
19
20 fn report_modified(
21 &self,
22 _name: &str,
23 _diff: &TextDiff,
24 reporter: &SummaryReport<W>,
25 ) -> Result<MayUnsupported<()>, Self::Error> {
26 reporter.increment_modified();
27 Ok(MayUnsupported::Ok(()))
28 }
29
30 fn report_added(
31 &self,
32 _name: &str,
33 data: &FileLeaf,
34 reporter: &SummaryReport<W>,
35 ) -> Result<MayUnsupported<()>, Self::Error> {
36 if !is_text_file(&data.kind, &data.content) {
37 return Ok(MayUnsupported::Unsupported);
38 }
39 reporter.increment_added();
40 Ok(MayUnsupported::Ok(()))
41 }
42
43 fn report_deleted(
44 &self,
45 _name: &str,
46 data: &FileLeaf,
47 reporter: &SummaryReport<W>,
48 ) -> Result<MayUnsupported<()>, Self::Error> {
49 if !is_text_file(&data.kind, &data.content) {
50 return Ok(MayUnsupported::Unsupported);
51 }
52 reporter.increment_deleted();
53 Ok(MayUnsupported::Ok(()))
54 }
55}