diff --git a/lua/u/renderer.lua b/lua/u/renderer.lua index c50aec4..625dbf9 100644 --- a/lua/u/renderer.lua +++ b/lua/u/renderer.lua @@ -526,6 +526,26 @@ function TreeBuilder:nest(fn) return self end +--- @param arr [] +--- @param f fun(tb: u.renderer.TreeBuilder, item: T, idx: number): any +function TreeBuilder:ipairs(arr, f) + return self:nest(function(tb) + for idx, item in ipairs(arr) do + f(tb, item, idx) + end + end) +end + +--- @param tab table +--- @param f fun(tb: u.renderer.TreeBuilder, key: any, value: any): any +function TreeBuilder:pairs(tab, f) + return self:nest(function(tb) + for k, v in pairs(tab) do + f(tb, k, v) + end + end) +end + --- @return u.renderer.Tree function TreeBuilder:tree() return self.nodes end -- }}}