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/optional.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/optional.lua')
| -rw-r--r-- | lua/nvim-lsp-installer/core/optional.lua | 100 |
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 |
