result {result}R Documentation

Wraps a function in an result monad for later evaluation.

Description

Use result on functions whose outcomes are not known in advance or not safe to be examined. The function will not be evaluated until the monad is explicitly called.

Usage

result(.fn, detect_warning = TRUE, fail_on_warning = TRUE)

Arguments

.fn

function to wrap

detect_warning

logical, whether to detect warnings; note result cannot capture the outcome value if it catches warnings, so use detect_warning = TRUE only if you want to capture the warning message (e.g., after a side-effect).

fail_on_warning

logical, whether to treat warnings as failure or success.

Value

function that returns a result object of subclass success or failure

Examples

crashy <- function() stop("Go no further")
safely_call_crashy <- result(crashy)
safely_call_crashy() |> is_failure()

calculate <- function(x, y) x + y
safely_calculate <- result(calculate)
safely_calculate(1, 2) |> value()

[Package result version 0.1.0 Index]