From 3c62386a396ae0c1cd7adbaacc379eb4af072a65 Mon Sep 17 00:00:00 2001 From: William Boman Date: Mon, 15 Aug 2022 21:03:06 +0200 Subject: refactor: introduce selene, harden type defs, and use proper EmmyLua syntax (#296) --- lua/mason-core/functional/table.lua | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) (limited to 'lua/mason-core/functional/table.lua') diff --git a/lua/mason-core/functional/table.lua b/lua/mason-core/functional/table.lua index 65d05cc8..150de9ce 100644 --- a/lua/mason-core/functional/table.lua +++ b/lua/mason-core/functional/table.lua @@ -2,14 +2,18 @@ local fun = require "mason-core.functional.function" local _ = {} ----@param index any ----@param tbl table +---@generic T, U +---@param index T +---@param tbl table +---@return U? _.prop = fun.curryN(function(index, tbl) return tbl[index] end, 2) ----@param keys any[] ----@param tbl table +---@generic T, U +---@param keys T[] +---@param tbl table +---@return table _.pick = fun.curryN(function(keys, tbl) local ret = {} for _, key in ipairs(keys) do @@ -21,8 +25,9 @@ end, 2) _.keys = fun.curryN(vim.tbl_keys, 1) _.size = fun.curryN(vim.tbl_count, 1) ----@param tbl table ----@return any[][] +---@generic K, V +---@param tbl table +---@return { [1]: K, [2]: V }[] _.to_pairs = fun.curryN(function(tbl) local result = {} for k, v in pairs(tbl) do -- cgit v1.2.3-70-g09d2