pub mod enrichment_quality;
pub mod event_sequence;
pub mod variant_analysis;
pub use enrichment_quality::*;
pub use event_sequence::{EventSequenceAnalysis, EventSequenceAnalyzer, ProcessEventData};
pub use variant_analysis::{VariantAnalysis, VariantAnalyzer, VariantData};
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ProcessMiningEvaluation {
pub event_sequence: Option<EventSequenceAnalysis>,
pub variants: Option<VariantAnalysis>,
pub passes: bool,
pub issues: Vec<String>,
}
impl ProcessMiningEvaluation {
pub fn new() -> Self {
Self {
event_sequence: None,
variants: None,
passes: true,
issues: Vec::new(),
}
}
pub fn check_thresholds(&mut self) {
self.issues.clear();
if let Some(ref es) = self.event_sequence {
if !es.passes {
self.issues.extend(es.issues.clone());
}
}
if let Some(ref va) = self.variants {
if !va.passes {
self.issues.extend(va.issues.clone());
}
}
self.passes = self.issues.is_empty();
}
}
impl Default for ProcessMiningEvaluation {
fn default() -> Self {
Self::new()
}
}