Namespace: FsToolkit.ErrorHandling
orElse returns the original Validation if it is Ok, otherwise returns the provided alternative Validation.
Validation<'ok, 'errorOutput> -> Validation<'ok, 'errorInput> -> Validation<'ok, 'errorOutput>let result =
Validation.ok "First"
|> Validation.orElse (Validation.ok "Second")
// Ok "First"let result =
Validation.error "First"
|> Validation.orElse (Validation.ok "Second")
// Ok "Second"let result =
Validation.error "First"
|> Validation.orElse (Validation.error "Second")
// Error ["Second"]orElseWith returns the original Validation if it is Ok, otherwise calls the given function with the error list and returns its result.
('errorInput list -> Validation<'ok, 'errorOutput>) -> Validation<'ok, 'errorInput> -> Validation<'ok, 'errorOutput>let result =
Validation.ok "First"
|> Validation.orElseWith (fun _ -> Validation.ok "Second")
// Ok "First"let result =
Validation.error "First"
|> Validation.orElseWith (fun _ -> Validation.ok "Second")
// Ok "Second"let result =
Validation.error "First"
|> Validation.orElseWith (fun errors ->
Validation.error $"Recovered from: %A{errors}")
// Error ["Recovered from: [\"First\"]"]