You’re not just limited to using the built in validations but can build your own by using the Validation builder.
This is how the built in presence validation is built:
public extension Validation {
/// Validate an optional value is present.
///
/// If the value is nil, it is considered invalid.
/// - Parameters:
/// - message: A custom error message.
/// - Returns: A Validation instance.
static func presence<T>(
message: String? = nil
) -> Validation<Optional<T>> {
.init { value in
if value == nil {
throw ValidationError.build(message: message)
}
}
}
}
Other libraries
Check out some of my other libraries:
Papyrus - Papyrus aims to hit the sweet spot between saving raw API responses to the file system and a fully fledged database like Realm.
RedUx - A super simple Swift implementation of the redux pattern making use of Swift 5.5’s new async await API’s.
Validate
A property wrapper that can validate the property it wraps.
When the wrapped value changes
@Validatewill run the provided validations against the value.Once validated, the
isValidanderrorsproperties can provide validation results.The
Validateframwork contains a number of built in validations such as presence, count and format. All which a various array of types.Requirements
Installation
Swift Package Manager
Documentation
API Reference
Usage
Built in validations
Validate includes several validations:
Building validations
You’re not just limited to using the built in validations but can build your own by using the
Validationbuilder.This is how the built in presence validation is built:
Other libraries
Check out some of my other libraries: