sakurs_cli/output/
markdown.rs1use super::OutputFormatter;
4use anyhow::Result;
5use std::io::Write;
6
7pub struct MarkdownFormatter<W: Write> {
9 writer: W,
10 sentence_count: usize,
11}
12
13impl<W: Write> MarkdownFormatter<W> {
14 pub fn new(writer: W) -> Self {
16 Self {
17 writer,
18 sentence_count: 0,
19 }
20 }
21}
22
23impl<W: Write + Send + Sync> OutputFormatter for MarkdownFormatter<W> {
24 fn format_sentence(&mut self, sentence: &str, _offset: usize) -> Result<()> {
25 self.sentence_count += 1;
26 writeln!(self.writer, "{}. {}", self.sentence_count, sentence.trim())?;
27 Ok(())
28 }
29
30 fn finish(&mut self) -> Result<()> {
31 writeln!(self.writer)?;
32 writeln!(self.writer, "---")?;
33 writeln!(self.writer, "*Total sentences: {}*", self.sentence_count)?;
34 self.writer.flush()?;
35 Ok(())
36 }
37}