use super::{DigestData, DigestFormatter};
use crate::core::walker::FileInfo;
use anyhow::Result;
pub struct PathsFormatter {
buffer: String,
}
impl PathsFormatter {
pub fn new() -> Self {
Self {
buffer: String::new(),
}
}
}
impl Default for PathsFormatter {
fn default() -> Self {
Self::new()
}
}
impl DigestFormatter for PathsFormatter {
fn render_header(&mut self, _data: &DigestData) -> Result<()> {
Ok(())
}
fn render_statistics(&mut self, _data: &DigestData) -> Result<()> {
Ok(())
}
fn render_file_tree(&mut self, _data: &DigestData) -> Result<()> {
Ok(())
}
fn render_toc(&mut self, _data: &DigestData) -> Result<()> {
Ok(())
}
fn render_file_details(&mut self, file: &FileInfo, _data: &DigestData) -> Result<()> {
self.buffer
.push_str(&file.relative_path.display().to_string());
self.buffer.push('\n');
Ok(())
}
fn finalize(self: Box<Self>) -> String {
self.buffer
}
fn format_name(&self) -> &'static str {
"paths"
}
}