///|
pub enum ValidationIssue {
MissingDefinitions
DuplicateIdentifier(String)
UnknownIdentifier(String)
NonMonotonicTime(Int64)
InvalidWidth(String)
} derive(Debug, Eq)
///|
/// Check structural invariants that are useful before running analysis.
pub fn validate(trace : Trace) -> Array[ValidationIssue] {
let issues : Array[ValidationIssue] = []
if trace.signals.length() == 0 {
issues.push(MissingDefinitions)
}
for i in 0..
issues.push(NonMonotonicTime(change.time))
_ => ()
}
previous = Some(change.time)
if find_signal(trace, change.id) is None {
issues.push(UnknownIdentifier(change.id))
}
}
issues
}