Merge branch 'feature/ruleType' into 'develop'

added ruleType so outside sources can know the type for this rule

See merge request BPHV_MIPS/vds_ios!276
This commit is contained in:
Bruce, Matt R 2024-07-30 16:06:30 +00:00
commit 10c7435597

View File

@ -72,16 +72,23 @@ public protocol Rule<ValueType> {
func isValid(value: ValueType?) -> Bool
/// Error Message to be show if the value is invalid.
var errorMessage: String { get }
/// type of rule
var ruleType: String { get }
}
extension Rule {
public var ruleType: String { "\(Self.self)" }
}
/// Type Erased Rule for a specific ValueType.
public struct AnyRule<ValueType>: Rule {
private let _isValid: (ValueType?) -> Bool
public var ruleType: String
public let errorMessage: String
public init<R: Rule>(_ rule: R) where R.ValueType == ValueType {
self._isValid = rule.isValid
self.ruleType = rule.ruleType
self.errorMessage = rule.errorMessage
}