35 lines
1.2 KiB
C#
35 lines
1.2 KiB
C#
using System.Collections.Generic;
|
|
|
|
namespace BaseGames.Core
|
|
{
|
|
public enum ValidationSeverity { Error, Warning }
|
|
|
|
/// <summary>
|
|
/// 单条验证结果:严重级别 + 消息文本。
|
|
/// 使用静态工厂方法 Error() / Warning() 创建。
|
|
/// </summary>
|
|
public readonly struct ValidationResult
|
|
{
|
|
public ValidationSeverity Severity { get; }
|
|
public string Message { get; }
|
|
|
|
public ValidationResult(ValidationSeverity severity, string message)
|
|
{
|
|
Severity = severity;
|
|
Message = message;
|
|
}
|
|
|
|
public static ValidationResult Error(string message) => new(ValidationSeverity.Error, message);
|
|
public static ValidationResult Warning(string message) => new(ValidationSeverity.Warning, message);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 可验证 ScriptableObject 接口。实现此接口的 SO 会被 SOValidationRunner 自动扫描。
|
|
/// Validate() 返回零条结果 = 数据合法;否则每条按 <see cref="ValidationResult.Severity"/> 分类报告。
|
|
/// </summary>
|
|
public interface IValidatable
|
|
{
|
|
IEnumerable<ValidationResult> Validate();
|
|
}
|
|
}
|