From d734f1e7803a756822524e0580ec8e9c93b821c6 Mon Sep 17 00:00:00 2001 From: Felix Morgner Date: Fri, 25 Jul 2025 22:59:30 +0200 Subject: lib: make Turns.Participant comparable --- lib/include/turns-participant.h | 14 ++++++++++++++ lib/include/turnsmm/participant.hpp | 10 ++++++++++ 2 files changed, 24 insertions(+) (limited to 'lib/include') diff --git a/lib/include/turns-participant.h b/lib/include/turns-participant.h index 28588a7..695d029 100644 --- a/lib/include/turns-participant.h +++ b/lib/include/turns-participant.h @@ -8,6 +8,7 @@ #include #include +#include G_BEGIN_DECLS @@ -66,6 +67,19 @@ TurnsParticipant * turns_participant_new(void); G_GNUC_WARN_UNUSED_RESULT TurnsParticipant * turns_participant_new_with(gchar const * name, gfloat priority, TurnsParticipantDisposition disposition); + +/** + * turns_participant_compare: + * @self: A #TurnsParticipant + * @other: A #TurnsParticipant + * + * Compares two participants by priority. + * + * Returns: a new `TurnsParticipant` + */ +G_GNUC_WARN_UNUSED_RESULT +gint turns_participant_compare(TurnsParticipant const * self, TurnsParticipant const * other); + /** * turns_participant_get_active: (get-property active) * @self: a participant diff --git a/lib/include/turnsmm/participant.hpp b/lib/include/turnsmm/participant.hpp index d7956ab..29ea1fa 100644 --- a/lib/include/turnsmm/participant.hpp +++ b/lib/include/turnsmm/participant.hpp @@ -17,6 +17,8 @@ #include #include +#include + namespace Turns { @@ -45,6 +47,9 @@ namespace Turns Participant(); Participant(Glib::ustring const & name, float priority, Disposition disposition); + auto operator<=>(Participant const & other) const noexcept -> std::strong_ordering; + auto operator==(Participant const & other) const noexcept -> bool; + [[nodiscard]] auto gobj() noexcept -> BaseObjectType *; [[nodiscard]] auto gobj() const -> BaseObjectType const *; [[nodiscard]] auto gobj_copy() noexcept -> BaseObjectType *; @@ -79,6 +84,11 @@ namespace Turns explicit Participant(BaseObjectType * gobj); }; + auto inline operator<=>(Glib::RefPtr const & lhs, Glib::RefPtr const & rhs) noexcept -> std::strong_ordering + { + return *lhs <=> *rhs; + } + } // namespace Turns namespace Glib -- cgit v1.2.3