diff options
Diffstat (limited to 'lua/mason-core/result.lua')
| -rw-r--r-- | lua/mason-core/result.lua | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/lua/mason-core/result.lua b/lua/mason-core/result.lua index 5c7af3be..c598b967 100644 --- a/lua/mason-core/result.lua +++ b/lua/mason-core/result.lua @@ -156,6 +156,15 @@ function Result:and_then(fn) end end +---@param fn fun(err: any): Result +function Result:or_else(fn) + if self:is_failure() then + return fn(self:err_or_nil()) + else + return self + end +end + ---@param fn fun(): any ---@return Result function Result.run_catching(fn) |
