package glib // #cgo pkg-config: glib-2.0 gobject-2.0 // #include // #include // #include "glib.go.h" import "C" import "unsafe" // SList is a representation of Glib's GSList. type SList struct { list *C.struct__GSList } func WrapSList(obj uintptr) *SList { return wrapSList((*C.struct__GSList)(unsafe.Pointer(obj))) } func wrapSList(obj *C.struct__GSList) *SList { return &SList{obj} } func (v *SList) Native() uintptr { return uintptr(unsafe.Pointer(v.list)) } func (v *SList) native() *C.struct__GSList { if v == nil || v.list == nil { return nil } return v.list } func (v *SList) Append(data uintptr) *SList { ret := C.g_slist_append(v.native(), C.gpointer(data)) if ret == v.native() { return v } else { return wrapSList(ret) } } // GSList * g_slist_alloc () // GSList * g_slist_prepend () // GSList * g_slist_insert () // GSList * g_slist_insert_before () // GSList * g_slist_insert_sorted () // GSList * g_slist_remove () // GSList * g_slist_remove_link () // GSList * g_slist_delete_link () // GSList * g_slist_remove_all () // void g_slist_free () // void g_slist_free_full () // void g_slist_free_1 () // guint g_slist_length () // GSList * g_slist_copy () // GSList * g_slist_copy_deep () // GSList * g_slist_reverse () // GSList * g_slist_insert_sorted_with_data () // GSList * g_slist_sort () // GSList * g_slist_sort_with_data () // GSList * g_slist_concat () // void g_slist_foreach () // GSList * g_slist_last () // #define g_slist_next() // GSList * g_slist_nth () // gpointer g_slist_nth_data () // GSList * g_slist_find () // GSList * g_slist_find_custom () // gint g_slist_position () // gint g_slist_index ()