diff options
Diffstat (limited to 'lua/mason-core/optional.lua')
| -rw-r--r-- | lua/mason-core/optional.lua | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/lua/mason-core/optional.lua b/lua/mason-core/optional.lua index 6eb0719e..cc40da77 100644 --- a/lua/mason-core/optional.lua +++ b/lua/mason-core/optional.lua @@ -105,13 +105,17 @@ function Optional:is_present() return self._value ~= nil end ----@param err fun(): any +---@param err (fun(): any)|string 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()) + if type(err) == "string" then + return Result.failure(err) + else + return Result.failure(err()) + end end end |
