mod repairer;
mod validator;
#[cfg(test)]
mod tests;
pub use repairer::PptxRepairer;
pub use validator::PptxValidator;
#[non_exhaustive]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub enum Severity {
Critical,
High,
Medium,
Low,
}
#[non_exhaustive]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub enum IssueCategory {
MissingPart,
InvalidXml,
BrokenRelationship,
MissingSlideRef,
OrphanSlide,
InvalidContentType,
MissingNamespace,
}
#[derive(Debug, Clone)]
pub struct ValidationIssue {
pub severity: Severity,
pub category: IssueCategory,
pub description: String,
pub location: Option<String>,
}
impl ValidationIssue {
pub(crate) fn new(
severity: Severity,
category: IssueCategory,
description: impl Into<String>,
location: Option<String>,
) -> Self {
Self {
severity,
category,
description: description.into(),
location,
}
}
}
#[derive(Debug, Clone)]
pub struct RepairReport {
pub issues_found: Vec<ValidationIssue>,
pub issues_fixed: Vec<ValidationIssue>,
pub is_valid: bool,
}