aboutsummaryrefslogtreecommitdiffstats
path: root/lua/mason-core/result.lua
diff options
context:
space:
mode:
Diffstat (limited to 'lua/mason-core/result.lua')
-rw-r--r--lua/mason-core/result.lua9
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)