All Downloads are FREE. Search and download functionalities are using the official Maven repository.

commonMain.pro.felixo.protobuf.schemadocument.validation.ValidationUtil.kt Maven / Gradle / Ivy

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()))




© 2015 - 2024 Weber Informatics LLC | Privacy Policy