public interface IValidationRule
{
/// <summary>
/// Gets the rule name.
/// </summary>
string RuleName { get; }
/// <summary>
/// Gets the default severity of this rule.
/// </summary>
ValidationSeverity Severity { get; }
/// <summary>
/// Validates the supplied PE image.
/// </summary>
/// <param name="peInfo">The parsed PE image.</param>
/// <param name="cancellationToken">A token used to cancel the operation.</param>
/// <returns>A validation result.</returns>
Task<ValidationResult> ValidateAsync(PeImageInfo peInfo, CancellationToken cancellationToken);
}