zip_extensions/audit/handlers/
entry_audit_handler.rs1use super::duplicates::DuplicatesHandler;
2use super::encryption::EncryptionHandler;
3use super::entry_view::EntryView;
4use super::names::NamesHandler;
5use super::path::PathHandler;
6use super::ratios::RatiosHandler;
7use super::recommendations::RecommendationsHandler;
8use super::symlinks::SymlinksHandler;
9use crate::audit::report::ZipAuditReport;
10
11pub trait EntryAuditHandler {
13 fn begin(&mut self, _zip_len: usize) {}
14 fn visit(&mut self, view: &EntryView, report: &mut ZipAuditReport);
15 fn finish(&mut self, _report: &mut ZipAuditReport) {}
16}
17
18pub fn default_handlers() -> Vec<Box<dyn EntryAuditHandler>> {
20 vec![
21 Box::new(PathHandler),
22 Box::new(RatiosHandler),
23 Box::new(NamesHandler),
24 Box::new(EncryptionHandler),
25 Box::new(DuplicatesHandler::new()),
26 Box::new(SymlinksHandler),
27 Box::new(RecommendationsHandler),
28 ]
29}