From 85c1d6699c626caad7b003cf26180954360578a8 Mon Sep 17 00:00:00 2001
From: Bruce Cowan <bruce@bcowan.me.uk>
Date: Wed, 30 Oct 2024 11:44:01 +0000
Subject: [PATCH] Create accessors for possibility values

---
 src/rugby-app-window.c  |  4 +---
 src/rugby-list-store.c  | 15 ++++-----------
 src/rugby-possibility.c | 14 +++++++++++---
 src/rugby-possibility.h |  2 ++
 4 files changed, 18 insertions(+), 17 deletions(-)

diff --git a/src/rugby-app-window.c b/src/rugby-app-window.c
index f1ca16b..9f4a132 100644
--- a/src/rugby-app-window.c
+++ b/src/rugby-app-window.c
@@ -90,9 +90,7 @@ header_label_cb (GtkListItem *item)
     if (!possibility)
       return NULL;
 
-    int tries = rugby_possibility_get_tries (possibility);
-    int utries = rugby_possibility_get_utries (possibility);
-    int total_tries = tries + utries;
+    int total_tries = rugby_possibility_total_tries (possibility);
 
     return g_strdup_printf (ngettext ("%d try", "%d tries", total_tries), total_tries);
 }
diff --git a/src/rugby-list-store.c b/src/rugby-list-store.c
index 343f627..cdbd541 100644
--- a/src/rugby-list-store.c
+++ b/src/rugby-list-store.c
@@ -1,5 +1,5 @@
 /*
- * SPDX-FileCopyrightText: 2018-2022 Bruce Cowan <bruce@bcowan.me.uk>
+ * SPDX-FileCopyrightText: 2018-2024 Bruce Cowan <bruce@bcowan.me.uk>
  *
  * SPDX-License-Identifier: GPL-3.0-or-later
  */
@@ -106,13 +106,6 @@ process_data (RugbyListStore *self)
                                 g_list_model_get_n_items (G_LIST_MODEL (self->items)));
 }
 
-static int
-get_total_tries (RugbyPossibility *possibility)
-{
-    return rugby_possibility_get_tries (possibility) +
-           rugby_possibility_get_utries (possibility);
-}
-
 // GListModel implementation
 
 static GType
@@ -166,13 +159,13 @@ rugby_list_store_get_section (GtkSectionModel *model,
         return;
     }
 
-    int target_tries = get_total_tries (possibility);
+    int target_tries = rugby_possibility_total_tries (possibility);
 
     // Find start
     for (unsigned i = 0; i < n_items; i++)
     {
         possibility = g_list_model_get_item (G_LIST_MODEL (self->items), i);
-        int total = get_total_tries (possibility);
+        int total = rugby_possibility_total_tries (possibility);
 
         if (total == target_tries)
         {
@@ -185,7 +178,7 @@ rugby_list_store_get_section (GtkSectionModel *model,
     for (unsigned i = *out_start + 1; i < n_items; i++)
     {
         possibility = g_list_model_get_item (G_LIST_MODEL (self->items), i);
-        int total = get_total_tries (possibility);
+        int total = rugby_possibility_total_tries (possibility);
 
         if (total != target_tries)
         {
diff --git a/src/rugby-possibility.c b/src/rugby-possibility.c
index cdc10a4..91a92c4 100644
--- a/src/rugby-possibility.c
+++ b/src/rugby-possibility.c
@@ -123,7 +123,7 @@ rugby_possibility_new (int tries,
 int
 rugby_possibility_get_tries (RugbyPossibility *self)
 {
-    g_return_val_if_fail (RUGBY_IS_POSSIBILITY (self), 0);
+    g_assert (RUGBY_IS_POSSIBILITY (self));
 
     return self->tries;
 }
@@ -131,7 +131,7 @@ rugby_possibility_get_tries (RugbyPossibility *self)
 int
 rugby_possibility_get_utries (RugbyPossibility *self)
 {
-    g_return_val_if_fail (RUGBY_IS_POSSIBILITY (self), 0);
+    g_assert (RUGBY_IS_POSSIBILITY (self));
 
     return self->utries;
 }
@@ -139,7 +139,15 @@ rugby_possibility_get_utries (RugbyPossibility *self)
 int
 rugby_possibility_get_kicks (RugbyPossibility *self)
 {
-    g_return_val_if_fail (RUGBY_IS_POSSIBILITY (self), 0);
+    g_assert (RUGBY_IS_POSSIBILITY (self));
 
     return self->kicks;
 }
+
+int
+rugby_possibility_total_tries (RugbyPossibility *self)
+{
+    g_assert (RUGBY_IS_POSSIBILITY (self));
+
+    return self->tries + self->utries;
+}
diff --git a/src/rugby-possibility.h b/src/rugby-possibility.h
index 7a036c2..565d219 100644
--- a/src/rugby-possibility.h
+++ b/src/rugby-possibility.h
@@ -22,4 +22,6 @@ int rugby_possibility_get_tries  (RugbyPossibility *self);
 int rugby_possibility_get_utries (RugbyPossibility *self);
 int rugby_possibility_get_kicks  (RugbyPossibility *self);
 
+int rugby_possibility_total_tries (RugbyPossibility *self);
+
 G_END_DECLS
-- 
GitLab