aboutsummaryrefslogtreecommitdiffstats
path: root/lua/mason-core/optional.lua
diff options
context:
space:
mode:
authorWilliam Boman <william@redwill.se>2023-10-13 21:14:29 +0200
committerWilliam Boman <william@redwill.se>2025-02-19 09:23:19 +0100
commitae208dc380808ff1aef39929a0e897e881571d43 (patch)
treeb9044cec7223062db69998189c76f8163ac9d58b /lua/mason-core/optional.lua
parentfix(location): use correct registry path (diff)
downloadmason-ae208dc380808ff1aef39929a0e897e881571d43.tar
mason-ae208dc380808ff1aef39929a0e897e881571d43.tar.gz
mason-ae208dc380808ff1aef39929a0e897e881571d43.tar.bz2
mason-ae208dc380808ff1aef39929a0e897e881571d43.tar.lz
mason-ae208dc380808ff1aef39929a0e897e881571d43.tar.xz
mason-ae208dc380808ff1aef39929a0e897e881571d43.tar.zst
mason-ae208dc380808ff1aef39929a0e897e881571d43.zip
refactor: standardize constructors and improve inheritance construction
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