diff options
| author | William Boman <william@redwill.se> | 2022-07-06 19:41:43 +0200 |
|---|---|---|
| committer | William Boman <william@redwill.se> | 2022-07-07 00:39:59 +0200 |
| commit | 5f634e0c37e723fc0c33e06b4fd5c2180178db40 (patch) | |
| tree | fa4f09363adefa8259e23e4d1ea036db628b1243 /lua/nvim-lsp-installer/core/result.lua | |
| parent | feat(health): use stderr for java version, also check for JAVA_HOME (#765) (diff) | |
| download | mason-5f634e0c37e723fc0c33e06b4fd5c2180178db40.tar mason-5f634e0c37e723fc0c33e06b4fd5c2180178db40.tar.gz mason-5f634e0c37e723fc0c33e06b4fd5c2180178db40.tar.bz2 mason-5f634e0c37e723fc0c33e06b4fd5c2180178db40.tar.lz mason-5f634e0c37e723fc0c33e06b4fd5c2180178db40.tar.xz mason-5f634e0c37e723fc0c33e06b4fd5c2180178db40.tar.zst mason-5f634e0c37e723fc0c33e06b4fd5c2180178db40.zip | |
mason.nvim
Diffstat (limited to 'lua/nvim-lsp-installer/core/result.lua')
| -rw-r--r-- | lua/nvim-lsp-installer/core/result.lua | 152 |
1 files changed, 0 insertions, 152 deletions
diff --git a/lua/nvim-lsp-installer/core/result.lua b/lua/nvim-lsp-installer/core/result.lua deleted file mode 100644 index 132e2758..00000000 --- a/lua/nvim-lsp-installer/core/result.lua +++ /dev/null @@ -1,152 +0,0 @@ ----@class Failure ----@field error any -local Failure = {} -Failure.__index = Failure - -function Failure.new(error) - return setmetatable({ error = error }, Failure) -end - ----@class Result ----@field value any -local Result = {} -Result.__index = Result - -function Result.new(value) - return setmetatable({ - value = value, - }, Result) -end - -function Result.success(value) - return Result.new(value) -end - -function Result.failure(error) - return Result.new(Failure.new(error)) -end - -function Result:get_or_nil() - if self:is_success() then - return self.value - end -end - -function Result:get_or_else(value) - if self:is_success() then - return self.value - else - return value - end -end - ----@param exception any @(optional) The exception to throw if the result is a failure. -function Result:get_or_throw(exception) - if self:is_success() then - return self.value - else - if exception ~= nil then - error(exception, 2) - else - error(self.value.error, 2) - end - end -end - -function Result:err_or_nil() - if self:is_failure() then - return self.value.error - end -end - -function Result:is_failure() - return getmetatable(self.value) == Failure -end - -function Result:is_success() - return getmetatable(self.value) ~= Failure -end - ----@param mapper_fn fun(value: any): any -function Result:map(mapper_fn) - if self:is_success() then - return Result.success(mapper_fn(self.value)) - else - return self - end -end - ----@param mapper_fn fun(value: any): any -function Result:map_err(mapper_fn) - if self:is_failure() then - return Result.failure(mapper_fn(self.value.error)) - else - return self - end -end - ----@param mapper_fn fun(value: any): any -function Result:map_catching(mapper_fn) - if self:is_success() then - local ok, result = pcall(mapper_fn, self.value) - if ok then - return Result.success(result) - else - return Result.failure(result) - end - else - return self - end -end - ----@param recover_fn fun(value: any): any -function Result:recover(recover_fn) - if self:is_failure() then - return Result.success(recover_fn(self:err_or_nil())) - else - return self - end -end - ----@param recover_fn fun(value: any): any -function Result:recover_catching(recover_fn) - if self:is_failure() then - local ok, value = pcall(recover_fn, self:err_or_nil()) - if ok then - return Result.success(value) - else - return Result.failure(value) - end - else - return self - end -end - ----@param fn fun(value: any): any -function Result:on_failure(fn) - if self:is_failure() then - fn(self.value.error) - end - return self -end - ----@param fn fun(value: any): any -function Result:on_success(fn) - if self:is_success() then - fn(self.value) - end - return self -end - ----@param fn fun(): any ----@return Result -function Result.run_catching(fn) - local ok, result = pcall(fn) - if ok then - return Result.success(result) - else - return Result.failure(result) - end -end - -return Result |
