module Bindings.Libgit2.Strarray where
import Foreign.Ptr
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.Libgit2.Common
data C'git_strarray = C'git_strarray{
c'git_strarray'strings :: Ptr (CString),
c'git_strarray'count :: CSize
} deriving (Eq,Show)
p'git_strarray'strings p = plusPtr p 0
p'git_strarray'strings :: Ptr (C'git_strarray) -> Ptr (Ptr (CString))
p'git_strarray'count p = plusPtr p 8
p'git_strarray'count :: Ptr (C'git_strarray) -> Ptr (CSize)
instance Storable C'git_strarray where
sizeOf _ = 16
alignment _ = 8
peek p = do
v0 <- peekByteOff p 0
v1 <- peekByteOff p 8
return $ C'git_strarray v0 v1
poke p (C'git_strarray v0 v1) = do
pokeByteOff p 0 v0
pokeByteOff p 8 v1
return ()
foreign import ccall "git_strarray_free" c'git_strarray_free
:: Ptr C'git_strarray -> IO ()
foreign import ccall "&git_strarray_free" p'git_strarray_free
:: FunPtr (Ptr C'git_strarray -> IO ())
foreign import ccall "git_strarray_copy" c'git_strarray_copy
:: Ptr C'git_strarray -> Ptr C'git_strarray -> IO (CInt)
foreign import ccall "&git_strarray_copy" p'git_strarray_copy
:: FunPtr (Ptr C'git_strarray -> Ptr C'git_strarray -> IO (CInt))