]> git.e2factory.org Git - e2factory.git/commitdiff
result: add function to iterate over result classes
authorTobias Ulmer <tu@emlix.com>
Wed, 25 Jan 2017 16:28:24 +0000 (17:28 +0100)
committerTobias Ulmer <tu@emlix.com>
Mon, 30 Jan 2017 13:33:34 +0000 (14:33 +0100)
Signed-off-by: Tobias Ulmer <tu@emlix.com>
local/result.lua

index 0649ea5ca0a8a537ad390546342b8fbd646f8164..0671fa8f890e600637dd9c9605dddbfbe6a60c64 100644 (file)
@@ -816,6 +816,30 @@ function result.register_result_class(typ, result_class)
     return true
 end
 
+--- Iterate over registered result classes.
+-- @return Iterator function that returns a sorted type, result class pair.
+function result.iterate_result_classes()
+    local i, t
+
+    t = {}
+    for typ,_ in pairs(result_types) do
+        table.insert(t, typ)
+    end
+    table.sort(t)
+
+    i = 0
+
+    return function ()
+        i = i + 1
+
+        if t[i] then
+            return t[i], result_types[t[i]]
+        end
+
+        return nil
+    end
+end
+
 ---
 local function detect_result(rawres)
     if not rawres.type then