]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
glib-2.0: Add GenericArray.find_custom() as variant of find_with_equal_func()
authorCorentin Noël <corentin@elementary.io>
Tue, 3 Nov 2020 16:22:48 +0000 (17:22 +0100)
committerRico Tzschichholz <ricotz@ubuntu.com>
Thu, 5 Nov 2020 11:39:52 +0000 (12:39 +0100)
This allows the needle to be a different type as the actual element type.
The implementation of ArraySearchFunc<G,T> is more customizable this way.

vapi/glib-2.0.vapi

index d024eb29492f94e30b58f3291222756ff3d77de9..23841a3375a7e7f914ea4a8096357adaa19d7f87 100644 (file)
@@ -5399,6 +5399,9 @@ namespace GLib {
                public void** pdata;
        }
 
+       [CCode (cname = "GEqualFunc", has_target = false)]
+       public delegate bool ArraySearchFunc<G,T> (G element, T needle);
+
        [Compact]
        [CCode (cname = "GPtrArray", cprefix = "g_ptr_array_", ref_function = "g_ptr_array_ref", unref_function = "g_ptr_array_unref", type_id = "G_TYPE_PTR_ARRAY")]
        [GIR (name = "PtrArray")]
@@ -5416,6 +5419,9 @@ namespace GLib {
                [Version (since = "2.54")]
                public bool find (G needle, out uint index = null);
                [Version (since = "2.54")]
+               [CCode (cname = "g_ptr_array_find_with_equal_func")]
+               public bool find_custom<T> (T needle, GLib.ArraySearchFunc<G,T>? equal_func, out uint index = null);
+               [Version (since = "2.54")]
                public bool find_with_equal_func (G needle, GLib.EqualFunc<G>? equal_func, out uint index = null);
                public void foreach (GLib.Func<G> func);
                [CCode (cname = "g_ptr_array_index")]