aboutsummaryrefslogtreecommitdiffstats
path: root/lua/mason-core/result.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/result.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/result.lua')
-rw-r--r--lua/mason-core/result.lua22
1 files changed, 14 insertions, 8 deletions
diff --git a/lua/mason-core/result.lua b/lua/mason-core/result.lua
index 1491c31f..e98a11b3 100644
--- a/lua/mason-core/result.lua
+++ b/lua/mason-core/result.lua
@@ -3,8 +3,12 @@
local Failure = {}
Failure.__index = Failure
-function Failure.new(error)
- return setmetatable({ error = error }, Failure)
+function Failure:new(error)
+ ---@type Failure
+ local instance = {}
+ setmetatable(instance, self)
+ instance.error = error
+ return instance
end
---@class Result
@@ -12,18 +16,20 @@ end
local Result = {}
Result.__index = Result
-function Result.new(value)
- return setmetatable({
- value = value,
- }, Result)
+function Result:new(value)
+ ---@type Result
+ local instance = {}
+ setmetatable(instance, self)
+ instance.value = value
+ return instance
end
function Result.success(value)
- return Result.new(value)
+ return Result:new(value)
end
function Result.failure(error)
- return Result.new(Failure.new(error))
+ return Result:new(Failure:new(error))
end
function Result:get_or_nil()