Initial commit
This commit is contained in:
23
lua/cave/template_provider.lua
Normal file
23
lua/cave/template_provider.lua
Normal file
@@ -0,0 +1,23 @@
|
||||
local Meta = require "cave.meta"
|
||||
local ClassLogger = require "cave.log.class_logger"
|
||||
|
||||
---@class cave.TemplateProvider : overseer.TemplateProvider
|
||||
---@field get_templates fun(): overseer.TemplateDefinition[]
|
||||
local TemplateProvider = Meta.derive "TemplateProvider"
|
||||
TemplateProvider.log = ClassLogger.new(TemplateProvider)
|
||||
|
||||
function TemplateProvider:init(name, get_templates_fn)
|
||||
self.name = name
|
||||
self.get_templates = get_templates_fn
|
||||
---@type fun(opts: overseer.SearchParams, cb: fun(tmpls: overseer.TemplateDefinition[]))
|
||||
self.generator = function(_, cb) cb(self.get_templates()) end
|
||||
end
|
||||
|
||||
---@return cave.TemplateProvider
|
||||
function TemplateProvider.new(name, get_templates_fn)
|
||||
local provider = setmetatable({}, TemplateProvider)
|
||||
provider:init(name, get_templates_fn)
|
||||
return provider
|
||||
end
|
||||
|
||||
return TemplateProvider
|
||||
Reference in New Issue
Block a user