parallel_disk_usage/
reporter.rs1pub mod error_only_reporter;
2pub mod error_report;
3pub mod event;
4pub mod progress_and_error_reporter;
5pub mod progress_report;
6
7pub use error_only_reporter::ErrorOnlyReporter;
8pub use error_report::ErrorReport;
9pub use event::Event;
10pub use progress_and_error_reporter::ProgressAndErrorReporter;
11pub use progress_report::ProgressReport;
12
13use crate::size;
14
15pub trait Reporter<Size: size::Size> {
17 fn report(&self, event: Event<Size>);
19}
20
21pub trait ParallelReporter<Size: size::Size>: Reporter<Size> {
23 type DestructionError;
25 fn destroy(self) -> Result<(), Self::DestructionError>;
27}
28
29impl<Size, Target> Reporter<Size> for &Target
30where
31 Size: size::Size,
32 Target: Reporter<Size>,
33{
34 fn report(&self, event: Event<Size>) {
35 Target::report(*self, event)
36 }
37}