Tri-Inspector/Editor/TriValidator.cs

38 lines
1005 B
C#
Raw Permalink Normal View History

2022-01-15 11:25:12 -05:00
using System;
using JetBrains.Annotations;
namespace TriInspector
{
2022-06-03 08:16:23 -04:00
public abstract class TriValidator : TriPropertyExtension
2022-01-15 11:25:12 -05:00
{
[PublicAPI]
public abstract TriValidationResult Validate(TriProperty property);
}
public abstract class TriAttributeValidator : TriValidator
{
internal Attribute RawAttribute { get; set; }
}
public abstract class TriAttributeValidator<TAttribute> : TriAttributeValidator
where TAttribute : Attribute
{
[PublicAPI]
public TAttribute Attribute => (TAttribute) RawAttribute;
}
public abstract class TriValueValidator : TriValidator
{
}
public abstract class TriValueValidator<T> : TriValueValidator
{
public sealed override TriValidationResult Validate(TriProperty property)
{
return Validate(new TriValue<T>(property));
}
[PublicAPI]
public abstract TriValidationResult Validate(TriValue<T> propertyValue);
}
}