From 933c187148a5f39f7ffe8190adf8163f8c474764 Mon Sep 17 00:00:00 2001 From: Jonathan Apodaca Date: Sun, 15 Jun 2025 18:21:34 -0600 Subject: [PATCH] (renderer) TreeBuilder: add ipairs/pairs utilities --- lua/u/renderer.lua | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) 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 -- }}}