/* SearchResult.c generated by valac 0.56.19, the Vala compiler
 * generated from SearchResult.vala, do not modify */

#include <glib-object.h>
#include <glib.h>

#if !defined(VALA_STRICT_C)
#if !defined(__clang__) && defined(__GNUC__) && (__GNUC__ >= 14)
#pragma GCC diagnostic warning "-Wincompatible-pointer-types"
#elif defined(__clang__) && (__clang_major__ >= 16)
#pragma clang diagnostic ignored "-Wincompatible-function-pointer-types"
#pragma clang diagnostic ignored "-Wincompatible-pointer-types"
#endif
#endif
#if !defined(VALA_EXTERN)
#if defined(_MSC_VER)
#define VALA_EXTERN __declspec(dllexport) extern
#elif __GNUC__ >= 4
#define VALA_EXTERN __attribute__((visibility("default"))) extern
#else
#define VALA_EXTERN extern
#endif
#endif

#define TUBA_API_TYPE_SEARCH_RESULT (tuba_api_search_result_get_type ())
#define TUBA_API_SEARCH_RESULT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_API_TYPE_SEARCH_RESULT, TubaAPISearchResult))
#define TUBA_API_IS_SEARCH_RESULT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_API_TYPE_SEARCH_RESULT))
#define TUBA_API_SEARCH_RESULT_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TUBA_API_TYPE_SEARCH_RESULT, TubaAPISearchResultIface))

typedef struct _TubaAPISearchResult TubaAPISearchResult;
typedef struct _TubaAPISearchResultIface TubaAPISearchResultIface;

struct _TubaAPISearchResultIface {
	GTypeInterface parent_iface;
	GRegex* (*get_tuba_search_query_regex) (TubaAPISearchResult* self);
	void (*set_tuba_search_query_regex) (TubaAPISearchResult* self, GRegex* value);
};

VALA_EXTERN GType tuba_api_search_result_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaAPISearchResult, g_object_unref)
VALA_EXTERN GRegex* tuba_api_search_result_get_tuba_search_query_regex (TubaAPISearchResult* self);
VALA_EXTERN void tuba_api_search_result_set_tuba_search_query_regex (TubaAPISearchResult* self,
                                                         GRegex* value);
static GType tuba_api_search_result_get_type_once (void);

GRegex*
tuba_api_search_result_get_tuba_search_query_regex (TubaAPISearchResult* self)
{
	TubaAPISearchResultIface* _iface_;
	g_return_val_if_fail (self != NULL, NULL);
	_iface_ = TUBA_API_SEARCH_RESULT_GET_INTERFACE (self);
	if (_iface_->get_tuba_search_query_regex) {
		return _iface_->get_tuba_search_query_regex (self);
	}
	return NULL;
}

void
tuba_api_search_result_set_tuba_search_query_regex (TubaAPISearchResult* self,
                                                    GRegex* value)
{
	TubaAPISearchResultIface* _iface_;
	g_return_if_fail (self != NULL);
	_iface_ = TUBA_API_SEARCH_RESULT_GET_INTERFACE (self);
	if (_iface_->set_tuba_search_query_regex) {
		_iface_->set_tuba_search_query_regex (self, value);
	}
}

static void
tuba_api_search_result_default_init (TubaAPISearchResultIface * iface,
                                     gpointer iface_data)
{
	g_object_interface_install_property (iface, g_param_spec_boxed ("tuba-search-query-regex", "tuba-search-query-regex", "tuba-search-query-regex", G_TYPE_REGEX, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
}

 G_GNUC_NO_INLINE static GType
tuba_api_search_result_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (TubaAPISearchResultIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) tuba_api_search_result_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
	GType tuba_api_search_result_type_id;
	tuba_api_search_result_type_id = g_type_register_static (G_TYPE_INTERFACE, "TubaAPISearchResult", &g_define_type_info, G_TYPE_FLAG_NONE);
	g_type_interface_add_prerequisite (tuba_api_search_result_type_id, G_TYPE_OBJECT);
	return tuba_api_search_result_type_id;
}

GType
tuba_api_search_result_get_type (void)
{
	static GType tuba_api_search_result_type_id__once = 0;
	if (g_once_init_enter_pointer (&tuba_api_search_result_type_id__once)) {
		GType tuba_api_search_result_type_id;
		tuba_api_search_result_type_id = tuba_api_search_result_get_type_once ();
		g_once_init_leave_pointer (&tuba_api_search_result_type_id__once, tuba_api_search_result_type_id);
	}
	return tuba_api_search_result_type_id__once;
}

