check
Namespace: FsToolkit.ErrorHandling
The intent of check is to allow an Ok result value to be validated.
check
takes a validation function of the form 'ok -> Result<unit, 'error>
and a result of the form Result<'ok, 'error>
.
If the result is Ok x
then the validation function is applied, and if the validation function returns an error, this new error is returned. Otherwise, the original Ok x
result is returned. If the original result is an Error, the original result is returned.
Function Signature
('ok -> Result<unit,'error>) -> Result<'ok,'error> -> Result<'ok,'error>
Examples
Example 1
Ok (
{|
AccessPolicyName = "UserCanAccessResource"
IsEnabled = true
|}
)
|> Result.check (fun policy ->
if not policy.IsEnabled then
Error (
$"The policy {policy.AccessPolicyName} cannot be used because its disabled."
)
else
Ok ()
)
// Ok {| AccessPolicyName = "UserCanAccessResource"; IsEnabled = true; |}
Example 2
Ok (
{|
AccessPolicyName = "UserCanAccessResource"
IsEnabled = false
|}
)
|> Result.check (fun policy ->
if not policy.IsEnabled then
Error (
$"The policy {policy.AccessPolicyName} cannot be used because its disabled."
)
else
Ok ()
)
// Error "The policy UserCanAccessResource cannot be used because its disabled."
Last updated