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.lua14
1 files changed, 9 insertions, 5 deletions
diff --git a/lua/mason-core/optional.lua b/lua/mason-core/optional.lua
index d5055c9c..bb168324 100644
--- a/lua/mason-core/optional.lua
+++ b/lua/mason-core/optional.lua
@@ -4,18 +4,22 @@ local Optional = {}
Optional.__index = Optional
---@param value any
-function Optional.new(value)
- return setmetatable({ _value = value }, Optional)
+function Optional:new(value)
+ ---@type Optional
+ local instance = {}
+ setmetatable(instance, self)
+ instance._value = value
+ return instance
end
-local EMPTY = Optional.new(nil)
+local EMPTY = Optional:new(nil)
---@param value any
function Optional.of_nilable(value)
if value == nil then
return EMPTY
else
- return Optional.new(value)
+ return Optional:new(value)
end
end
@@ -25,7 +29,7 @@ end
---@param value any
function Optional.of(value)
- return Optional.new(value)
+ return Optional:new(value)
end
---@param mapper_fn fun(value: any): any