aboutsummaryrefslogtreecommitdiffstats
path: root/lua/nvim-lsp-installer/core/optional.lua
diff options
context:
space:
mode:
authorWilliam Boman <william@redwill.se>2022-07-06 19:41:43 +0200
committerWilliam Boman <william@redwill.se>2022-07-07 00:39:59 +0200
commit5f634e0c37e723fc0c33e06b4fd5c2180178db40 (patch)
treefa4f09363adefa8259e23e4d1ea036db628b1243 /lua/nvim-lsp-installer/core/optional.lua
parentfeat(health): use stderr for java version, also check for JAVA_HOME (#765) (diff)
downloadmason-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/optional.lua')
-rw-r--r--lua/nvim-lsp-installer/core/optional.lua100
1 files changed, 0 insertions, 100 deletions
diff --git a/lua/nvim-lsp-installer/core/optional.lua b/lua/nvim-lsp-installer/core/optional.lua
deleted file mode 100644
index 10af8ccb..00000000
--- a/lua/nvim-lsp-installer/core/optional.lua
+++ /dev/null
@@ -1,100 +0,0 @@
----@class Optional<T>
----@field private _value unknown
-local Optional = {}
-Optional.__index = Optional
-
----@param value any
-function Optional.new(value)
- return setmetatable({ _value = value }, Optional)
-end
-
-local EMPTY = Optional.new(nil)
-
----@param value any
-function Optional.of_nilable(value)
- if value == nil then
- return EMPTY
- else
- return Optional.new(value)
- end
-end
-
-function Optional.empty()
- return EMPTY
-end
-
----@param value any
-function Optional.of(value)
- return Optional.new(value)
-end
-
----@param mapper_fn fun(value: any): any
-function Optional:map(mapper_fn)
- if self:is_present() then
- return Optional.of_nilable(mapper_fn(self._value))
- else
- return EMPTY
- end
-end
-
-function Optional:get()
- if not self:is_present() then
- error("No value present.", 2)
- end
- return self._value
-end
-
----@param value any
-function Optional:or_else(value)
- if self:is_present() then
- return self._value
- else
- return value
- end
-end
-
----@param supplier fun(): any
-function Optional:or_else_get(supplier)
- if self:is_present() then
- return self._value
- else
- return supplier()
- end
-end
-
----@param supplier fun(): Optional
----@return Optional
-function Optional:or_(supplier)
- if self:is_present() then
- return self
- else
- return supplier()
- end
-end
-
----@param exception any @(optional) The exception to throw if the result is a failure.
-function Optional:or_else_throw(exception)
- if self:is_present() then
- return self._value
- else
- if exception then
- error(exception, 2)
- else
- error("No value present.", 2)
- end
- end
-end
-
----@param fn fun(value: any)
-function Optional:if_present(fn)
- if self:is_present() then
- fn(self._value)
- end
- return self
-end
-
-function Optional:is_present()
- return self._value ~= nil
-end
-
-return Optional