diff --git a/Editor/Validators/Attributes.meta b/Editor/Validators/Attributes.meta new file mode 100644 index 0000000..7b92af6 --- /dev/null +++ b/Editor/Validators/Attributes.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 0aa1d741049f4074bb863b76ed604d07 +timeCreated: 1779214748 \ No newline at end of file diff --git a/Editor/Validators/Attributes/AttributeValidatorMin.cs b/Editor/Validators/Attributes/AttributeValidatorMin.cs new file mode 100644 index 0000000..59b7c1e --- /dev/null +++ b/Editor/Validators/Attributes/AttributeValidatorMin.cs @@ -0,0 +1,23 @@ +using UnityEngine; + +namespace Module.ProjectValidator.Editor +{ + internal sealed class AttributeValidatorMin : IAttributeValidator + { + 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; + } + } +} \ No newline at end of file diff --git a/Editor/Validators/Attributes/AttributeValidatorMin.cs.meta b/Editor/Validators/Attributes/AttributeValidatorMin.cs.meta new file mode 100644 index 0000000..7b95df1 --- /dev/null +++ b/Editor/Validators/Attributes/AttributeValidatorMin.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 2015106b3c9b450e9efb1333e5239033 +timeCreated: 1779214761 \ No newline at end of file diff --git a/Editor/Validators/Attributes/AttributeValidatorRange.cs b/Editor/Validators/Attributes/AttributeValidatorRange.cs new file mode 100644 index 0000000..b52c1f9 --- /dev/null +++ b/Editor/Validators/Attributes/AttributeValidatorRange.cs @@ -0,0 +1,23 @@ +using UnityEngine; + +namespace Module.ProjectValidator.Editor +{ + internal sealed class AttributeValidatorRange : IAttributeValidator + { + 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; + } + } +} \ No newline at end of file diff --git a/Editor/Validators/Attributes/AttributeValidatorRange.cs.meta b/Editor/Validators/Attributes/AttributeValidatorRange.cs.meta new file mode 100644 index 0000000..531db6b --- /dev/null +++ b/Editor/Validators/Attributes/AttributeValidatorRange.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 3115c26bccfe4b1e964f784a3f9fdd55 +timeCreated: 1779214908 \ No newline at end of file diff --git a/package.json b/package.json index 1a71e3f..cc7d0bb 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "com.module.project-validator", - "version": "0.4.0", + "version": "0.5.0", "displayName": "Module.ProjectValidator", "description": "", "unity": "6000.3",