src/commit-data.h

changeset 75
857af79337d5
parent 61
d77763d2fdda
--- a/src/commit-data.h	Fri Feb 06 16:23:50 2026 +0100
+++ b/src/commit-data.h	Fri Feb 06 18:44:47 2026 +0100
@@ -31,13 +31,19 @@
 #include <string>
 
 namespace fm {
+    using commit_counts = std::unordered_map<
+        std::string, // repository name
+        unsigned>;
+    using summaries_lists = std::unordered_map<
+        std::string, // repository name
+        std::vector<std::string> >;
+    using tag_lists = std::unordered_map<
+        std::string, // repository name
+        std::vector<std::string> >;
+
     struct commits final {
-        std::unordered_map<
-            std::string, // repository name
-            std::vector<std::string> > summaries;
-        std::unordered_map<
-            std::string, // repository name
-            std::vector<std::string> > tags;
+        summaries_lists summaries;
+        tag_lists tags;
 
         [[nodiscard]] unsigned count(const std::string &repo) const {
             return summaries.at(repo).size();
@@ -45,8 +51,23 @@
 
         [[nodiscard]] unsigned count() const {
             return std::accumulate(
-                summaries.begin(), summaries.end(), 0u,
-                [](unsigned sum, const auto &pair) { return sum + pair.second.size(); });
+                    summaries.begin(), summaries.end(), 0u,
+                    [](unsigned sum, const auto &pair) { return sum + pair.second.size(); });
+        }
+    };
+
+    struct commit_summary final {
+        tag_lists tags_with_date;
+        commit_counts commits;
+
+        [[nodiscard]] unsigned count(const std::string &repo) const {
+            return commits.at(repo);
+        }
+
+        [[nodiscard]] unsigned count() const {
+            return std::accumulate(
+                    commits.begin(), commits.end(), 0u,
+                    [](unsigned sum, const auto &pair) { return sum + pair.second; });
         }
     };
 }

mercurial