local record M
enum Type
'keys'
'event'
'ft'
'cmd'
end
metamethod __index: function(M, M.Type): function
end
return setmetatable(M, {
__index = function(_, cond: M.Type): function
if cond == 'keys' then
return require('packer.handlers.keys')
elseif cond == 'event' then
return require('packer.handlers.event')
elseif cond == 'ft' then
return require('packer.handlers.ft')
elseif cond == 'cmd' then
return require('packer.handlers.cmd')
end
end
})
However since the domain of cond is known this could be written as:
local record M
enum Type
'keys'
'event'
'ft'
'cmd'
end
metamethod __index: function(M, M.Type): function
end
return setmetatable(M, {
__index = function(_, cond: M.Type): function
return require('packer.handlers.'..assert(cond))
end
})
Currently I have:
However since the domain of
cond
is known this could be written as: