namespace PKHeX.Core
{
///
/// Verification that provides new values for a .
///
public abstract class Verifier
{
///
/// category.
///
protected abstract CheckIdentifier Identifier { get; }
///
/// Processes the and adds any relevant values to the .
///
/// Analysis data to process
public abstract void Verify(LegalityAnalysis data);
protected CheckResult GetInvalid(string msg) => Get(msg, Severity.Invalid);
protected CheckResult GetValid(string msg) => Get(msg, Severity.Valid);
protected CheckResult Get(string msg, Severity s) => new(s, msg, Identifier);
protected static CheckResult GetInvalid(string msg, CheckIdentifier c) => Get(msg, Severity.Invalid, c);
protected static CheckResult GetValid(string msg, CheckIdentifier c) => Get(msg, Severity.Valid, c);
protected static CheckResult Get(string msg, Severity s, CheckIdentifier c) => new(s, msg, c);
}
}