aboutsummaryrefslogtreecommitdiffstats
path: root/lua/mason-core/optional.lua
diff options
context:
space:
mode:
Diffstat (limited to 'lua/mason-core/optional.lua')
-rw-r--r--lua/mason-core/optional.lua10
1 files changed, 10 insertions, 0 deletions
diff --git a/lua/mason-core/optional.lua b/lua/mason-core/optional.lua
index 65317b7f..6eb0719e 100644
--- a/lua/mason-core/optional.lua
+++ b/lua/mason-core/optional.lua
@@ -105,4 +105,14 @@ function Optional:is_present()
return self._value ~= nil
end
+---@param err fun(): any
+function Optional:ok_or(err)
+ local Result = require "mason-core.result"
+ if self:is_present() then
+ return Result.success(self:get())
+ else
+ return Result.failure(err())
+ end
+end
+
return Optional