checklist
checklist copied to clipboard
Parsing Lib Integrations?
I think it'd be very helpful to provide integrations with json/xml/decoder a -> validator a b -> decoder b
. This way users can transparently use checklist for validation during parsing.
Example for something like circe:
def validatingDecoder[A, B](
handleWarnings: (WarningMessages, B) => DecodeResult[B])(
implicit decoder: Decoder[A], validator: Validator[A, B]
): Decoder[B] =
decoder.emap(validator.validate(_).fold(
handleErrors = validatorErrorToCirceError,
handleWarnings = handleWarnings,
handleSuccess = DecodeResult.success(_)
))
Tighter integrations than the one above could reduce overhead a bit, but I think the above is a good first-pass.