module Bindings.GLib.DataTypes.DoublyLinkedLists where
import Foreign.Ptr (Ptr,FunPtr,plusPtr)
import Foreign.Ptr (wordPtrToPtr,castPtrToFunPtr)
import Foreign.Storable
import Foreign.C.Types
import Foreign.C.String (CString,CStringLen,CWString,CWStringLen)
import Foreign.Marshal.Alloc (alloca)
import Foreign.Marshal.Array (peekArray,pokeArray)
import Data.Int
import Data.Word
import Bindings.GLib.Fundamentals
data C'GList = C'GList{
c'GList'data :: C'gpointer
,
c'GList'next :: Ptr C'GList
,
c'GList'prev :: Ptr C'GList
} deriving (Eq,Show)
instance Storable C'GList where
sizeOf _ = 12
alignment = sizeOf
peek p = do
v0 <- peekByteOff p 0
v1 <- peekByteOff p 4
v2 <- peekByteOff p 8
return $ C'GList v0 v1 v2
poke p (C'GList v0 v1 v2) = do
pokeByteOff p 0 v0
pokeByteOff p 4 v1
pokeByteOff p 8 v2
return ()
foreign import ccall "g_list_append" c'g_list_append
:: Ptr C'GList -> C'gpointer -> IO (Ptr C'GList)
foreign import ccall "&g_list_append" p'g_list_append
:: FunPtr (Ptr C'GList -> C'gpointer -> IO (Ptr C'GList))
foreign import ccall "g_list_prepend" c'g_list_prepend
:: Ptr C'GList -> C'gpointer -> IO (Ptr C'GList)
foreign import ccall "&g_list_prepend" p'g_list_prepend
:: FunPtr (Ptr C'GList -> C'gpointer -> IO (Ptr C'GList))
foreign import ccall "g_list_insert" c'g_list_insert
:: Ptr C'GList -> C'gpointer -> C'gint -> IO (Ptr C'GList)
foreign import ccall "&g_list_insert" p'g_list_insert
:: FunPtr (Ptr C'GList -> C'gpointer -> C'gint -> IO (Ptr C'GList))
foreign import ccall "g_list_insert_before" c'g_list_insert_before
:: Ptr C'GList -> Ptr C'GList -> C'gpointer -> IO (Ptr C'GList)
foreign import ccall "&g_list_insert_before" p'g_list_insert_before
:: FunPtr (Ptr C'GList -> Ptr C'GList -> C'gpointer -> IO (Ptr C'GList))
foreign import ccall "g_list_insert_sorted" c'g_list_insert_sorted
:: Ptr C'GList -> C'gpointer -> C'GCompareFunc -> IO (Ptr C'GList)
foreign import ccall "&g_list_insert_sorted" p'g_list_insert_sorted
:: FunPtr (Ptr C'GList -> C'gpointer -> C'GCompareFunc -> IO (Ptr C'GList))
foreign import ccall "g_list_remove" c'g_list_remove
:: Ptr C'GList -> C'gconstpointer -> IO (Ptr C'GList)
foreign import ccall "&g_list_remove" p'g_list_remove
:: FunPtr (Ptr C'GList -> C'gconstpointer -> IO (Ptr C'GList))
foreign import ccall "g_list_remove_link" c'g_list_remove_link
:: Ptr C'GList -> Ptr C'GList -> IO (Ptr C'GList)
foreign import ccall "&g_list_remove_link" p'g_list_remove_link
:: FunPtr (Ptr C'GList -> Ptr C'GList -> IO (Ptr C'GList))
foreign import ccall "g_list_delete_link" c'g_list_delete_link
:: Ptr C'GList -> Ptr C'GList -> IO (Ptr C'GList)
foreign import ccall "&g_list_delete_link" p'g_list_delete_link
:: FunPtr (Ptr C'GList -> Ptr C'GList -> IO (Ptr C'GList))
foreign import ccall "g_list_remove_all" c'g_list_remove_all
:: Ptr C'GList -> C'gconstpointer -> IO (Ptr C'GList)
foreign import ccall "&g_list_remove_all" p'g_list_remove_all
:: FunPtr (Ptr C'GList -> C'gconstpointer -> IO (Ptr C'GList))
foreign import ccall "g_list_free" c'g_list_free
:: Ptr C'GList -> IO ()
foreign import ccall "&g_list_free" p'g_list_free
:: FunPtr (Ptr C'GList -> IO ())
foreign import ccall "g_list_alloc" c'g_list_alloc
:: IO (Ptr C'GList)
foreign import ccall "&g_list_alloc" p'g_list_alloc
:: FunPtr (IO (Ptr C'GList))
foreign import ccall "g_list_free_1" c'g_list_free_1
:: Ptr C'GList -> IO ()
foreign import ccall "&g_list_free_1" p'g_list_free_1
:: FunPtr (Ptr C'GList -> IO ())
foreign import ccall "inline_g_list_free1" c'g_list_free1
:: Ptr C'GList -> IO ()
foreign import ccall "g_list_length" c'g_list_length
:: Ptr C'GList -> IO C'guint
foreign import ccall "&g_list_length" p'g_list_length
:: FunPtr (Ptr C'GList -> IO C'guint)
foreign import ccall "g_list_copy" c'g_list_copy
:: Ptr C'GList -> IO (Ptr C'GList)
foreign import ccall "&g_list_copy" p'g_list_copy
:: FunPtr (Ptr C'GList -> IO (Ptr C'GList))
foreign import ccall "g_list_reverse" c'g_list_reverse
:: Ptr C'GList -> IO (Ptr C'GList)
foreign import ccall "&g_list_reverse" p'g_list_reverse
:: FunPtr (Ptr C'GList -> IO (Ptr C'GList))
foreign import ccall "g_list_sort" c'g_list_sort
:: Ptr C'GList -> C'GCompareFunc -> IO (Ptr C'GList)
foreign import ccall "&g_list_sort" p'g_list_sort
:: FunPtr (Ptr C'GList -> C'GCompareFunc -> IO (Ptr C'GList))
type C'GCompareFunc = FunPtr (C'gconstpointer -> C'gconstpointer -> IO C'gint)
foreign import ccall "wrapper" mk'GCompareFunc
:: (C'gconstpointer -> C'gconstpointer -> IO C'gint) -> IO C'GCompareFunc
foreign import ccall "dynamic" mK'GCompareFunc
:: C'GCompareFunc -> (C'gconstpointer -> C'gconstpointer -> IO C'gint)
foreign import ccall "g_list_insert_sorted_with_data" c'g_list_insert_sorted_with_data
:: Ptr C'GList -> C'gpointer -> C'GCompareDataFunc -> C'gpointer -> IO (Ptr C'GList)
foreign import ccall "&g_list_insert_sorted_with_data" p'g_list_insert_sorted_with_data
:: FunPtr (Ptr C'GList -> C'gpointer -> C'GCompareDataFunc -> C'gpointer -> IO (Ptr C'GList))
foreign import ccall "g_list_sort_with_data" c'g_list_sort_with_data
:: Ptr C'GList -> C'GCompareDataFunc -> C'gpointer -> IO (Ptr C'GList)
foreign import ccall "&g_list_sort_with_data" p'g_list_sort_with_data
:: FunPtr (Ptr C'GList -> C'GCompareDataFunc -> C'gpointer -> IO (Ptr C'GList))
type C'GCompareDataFunc = FunPtr (C'gconstpointer -> C'gconstpointer -> C'gpointer -> IO C'gint)
foreign import ccall "wrapper" mk'GCompareDataFunc
:: (C'gconstpointer -> C'gconstpointer -> C'gpointer -> IO C'gint) -> IO C'GCompareDataFunc
foreign import ccall "dynamic" mK'GCompareDataFunc
:: C'GCompareDataFunc -> (C'gconstpointer -> C'gconstpointer -> C'gpointer -> IO C'gint)
foreign import ccall "g_list_concat" c'g_list_concat
:: Ptr C'GList -> Ptr C'GList -> IO (Ptr C'GList)
foreign import ccall "&g_list_concat" p'g_list_concat
:: FunPtr (Ptr C'GList -> Ptr C'GList -> IO (Ptr C'GList))
foreign import ccall "g_list_foreach" c'g_list_foreach
:: Ptr C'GList -> C'GFunc -> C'gpointer -> IO ()
foreign import ccall "&g_list_foreach" p'g_list_foreach
:: FunPtr (Ptr C'GList -> C'GFunc -> C'gpointer -> IO ())
type C'GFunc = FunPtr (C'gpointer -> C'gpointer -> IO ())
foreign import ccall "wrapper" mk'GFunc
:: (C'gpointer -> C'gpointer -> IO ()) -> IO C'GFunc
foreign import ccall "dynamic" mK'GFunc
:: C'GFunc -> (C'gpointer -> C'gpointer -> IO ())
foreign import ccall "g_list_first" c'g_list_first
:: Ptr C'GList -> IO (Ptr C'GList)
foreign import ccall "&g_list_first" p'g_list_first
:: FunPtr (Ptr C'GList -> IO (Ptr C'GList))
foreign import ccall "g_list_last" c'g_list_last
:: Ptr C'GList -> IO (Ptr C'GList)
foreign import ccall "&g_list_last" p'g_list_last
:: FunPtr (Ptr C'GList -> IO (Ptr C'GList))
foreign import ccall "inline_g_list_previous" c'g_list_previous
:: Ptr C'GList -> IO (Ptr C'GList)
foreign import ccall "inline_g_list_next" c'g_list_next
:: Ptr C'GList -> IO (Ptr C'GList)
foreign import ccall "g_list_nth" c'g_list_nth
:: Ptr C'GList -> C'guint -> IO (Ptr C'GList)
foreign import ccall "&g_list_nth" p'g_list_nth
:: FunPtr (Ptr C'GList -> C'guint -> IO (Ptr C'GList))
foreign import ccall "g_list_nth_data" c'g_list_nth_data
:: Ptr C'GList -> C'guint -> IO C'gpointer
foreign import ccall "&g_list_nth_data" p'g_list_nth_data
:: FunPtr (Ptr C'GList -> C'guint -> IO C'gpointer)
foreign import ccall "g_list_nth_prev" c'g_list_nth_prev
:: Ptr C'GList -> C'guint -> IO (Ptr C'GList)
foreign import ccall "&g_list_nth_prev" p'g_list_nth_prev
:: FunPtr (Ptr C'GList -> C'guint -> IO (Ptr C'GList))
foreign import ccall "g_list_find" c'g_list_find
:: Ptr C'GList -> C'gconstpointer -> IO (Ptr C'GList)
foreign import ccall "&g_list_find" p'g_list_find
:: FunPtr (Ptr C'GList -> C'gconstpointer -> IO (Ptr C'GList))
foreign import ccall "g_list_find_custom" c'g_list_find_custom
:: Ptr C'GList -> C'gconstpointer -> C'GCompareFunc -> IO (Ptr C'GList)
foreign import ccall "&g_list_find_custom" p'g_list_find_custom
:: FunPtr (Ptr C'GList -> C'gconstpointer -> C'GCompareFunc -> IO (Ptr C'GList))
foreign import ccall "g_list_position" c'g_list_position
:: Ptr C'GList -> Ptr C'GList -> IO C'gint
foreign import ccall "&g_list_position" p'g_list_position
:: FunPtr (Ptr C'GList -> Ptr C'GList -> IO C'gint)
foreign import ccall "g_list_index" c'g_list_index
:: Ptr C'GList -> C'gconstpointer -> IO C'gint
foreign import ccall "&g_list_index" p'g_list_index
:: FunPtr (Ptr C'GList -> C'gconstpointer -> IO C'gint)