Added attribute validators for min and range attributes

This commit is contained in:
Anders Ejlersen 2026-05-19 20:24:16 +02:00
parent 591693da1d
commit 47c9c53819
6 changed files with 56 additions and 1 deletions

View file

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 0aa1d741049f4074bb863b76ed604d07
timeCreated: 1779214748

View file

@ -0,0 +1,23 @@
using UnityEngine;
namespace Module.ProjectValidator.Editor
{
internal sealed class AttributeValidatorMin : IAttributeValidator<MinAttribute>
{
public ValidatorResult Validate(MinAttribute attribute, object value)
{
if (value is int iValue)
{
if (iValue < attribute.min)
return ValidatorResult.Create(EValidatorSeverity.Error, $"Value {iValue} is less than minimum value of {attribute.min}");
}
else if (value is float fValue)
{
if (fValue < attribute.min)
return ValidatorResult.Create(EValidatorSeverity.Error, $"Value {fValue} is less than minimum value of {attribute.min}");
}
return ValidatorResult.Valid;
}
}
}

View file

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 2015106b3c9b450e9efb1333e5239033
timeCreated: 1779214761

View file

@ -0,0 +1,23 @@
using UnityEngine;
namespace Module.ProjectValidator.Editor
{
internal sealed class AttributeValidatorRange : IAttributeValidator<RangeAttribute>
{
public ValidatorResult Validate(RangeAttribute attribute, object value)
{
if (value is int iValue)
{
if (iValue < attribute.min || iValue > attribute.max)
return ValidatorResult.Create(EValidatorSeverity.Error, $"Value {iValue} is not in the range [{attribute.min};{attribute.max}]");
}
else if (value is float fValue)
{
if (fValue < attribute.min || fValue > attribute.max)
return ValidatorResult.Create(EValidatorSeverity.Error, $"Value {fValue} is not in the range [{attribute.min};{attribute.max}]");
}
return ValidatorResult.Valid;
}
}
}

View file

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 3115c26bccfe4b1e964f784a3f9fdd55
timeCreated: 1779214908

View file

@ -1,6 +1,6 @@
{
"name": "com.module.project-validator",
"version": "0.4.0",
"version": "0.5.0",
"displayName": "Module.ProjectValidator",
"description": "",
"unity": "6000.3",