From cc6404abe5cf7bf6be2b534c3ea671eebdffc645 Mon Sep 17 00:00:00 2001 From: William Boman Date: Wed, 5 Oct 2022 22:00:07 +0200 Subject: refactor(cargo): utilize optional chaining (#513) --- lua/mason-core/managers/cargo/init.lua | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) (limited to 'lua') diff --git a/lua/mason-core/managers/cargo/init.lua b/lua/mason-core/managers/cargo/init.lua index 8890daf6..07883cbf 100644 --- a/lua/mason-core/managers/cargo/init.lua +++ b/lua/mason-core/managers/cargo/init.lua @@ -125,6 +125,7 @@ end ---@async ---@param install_dir string +---@return Result # Result> local function get_installed_crates(install_dir) return spawn .cargo({ @@ -188,15 +189,15 @@ end ---@param receipt InstallReceipt ---@param install_dir string function M.get_installed_primary_package_version(receipt, install_dir) - return get_installed_crates(install_dir):map(function(pkgs) - if vim.in_fast_event() then - a.scheduler() - end - local pkg = vim.fn.fnamemodify(receipt.primary_source.package, ":t") - return Optional.of_nilable(pkgs[pkg]) - :map(_.prop "version") - :or_else_throw "Failed to find cargo package version." - end) + if vim.in_fast_event() then + a.scheduler() + end + local crate_name = vim.fn.fnamemodify(receipt.primary_source.package, ":t") + return get_installed_crates(install_dir) + :ok() + :map(_.prop(crate_name)) + :map(_.prop "version") + :ok_or(_.always "Failed to find cargo package version.") end return M -- cgit v1.2.3-70-g09d2