commonMain.pro.felixo.protobuf.schemadocument.validation.ValidationUtil.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of protobuf-kotlin-schemadocument-jvm Show documentation
Show all versions of protobuf-kotlin-schemadocument-jvm Show documentation
Protocol Buffers 3 support for Kotlin Multiplatform
The newest version!
package pro.felixo.protobuf.schemadocument.validation
fun Iterable.validateAll(validate: (T) -> ValidationResult): ValidationResult =
ValidationResult(map(validate).flatMap { it.errors })
fun ValidationScope.validateNoDuplicates(
items: Iterable,
transform: (T) -> U,
error: ValidationScope.(duplicate: T) -> ValidationError
): ValidationResult {
val seen = mutableSetOf()
return ValidationResult(
items.mapNotNull {
if (!seen.add(transform(it)))
error(it)
else
null
}
)
}
fun ValidationScope.validate(condition: Boolean, error: ValidationScope.() -> ValidationError): ValidationResult =
if (condition)
ValidationResult.OK
else
ValidationResult(listOf(error()))