module Bindings.Libgit2.Clone 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
import Bindings.Libgit2.Types
import Bindings.Libgit2.Indexer
import Bindings.Libgit2.Checkout
import Bindings.Libgit2.Remote
import Bindings.Libgit2.Transport
data C'git_clone_options = C'git_clone_options{
c'git_clone_options'version :: CUInt,
c'git_clone_options'checkout_opts :: C'git_checkout_opts,
c'git_clone_options'bare :: CInt,
c'git_clone_options'fetch_progress_cb :: CInt,
c'git_clone_options'fetch_progress_payload :: Ptr (),
c'git_clone_options'remote_name :: CString,
c'git_clone_options'pushurl :: CString,
c'git_clone_options'fetch_spec :: CString,
c'git_clone_options'push_spec :: CString,
c'git_clone_options'cred_acquire_cb :: CInt,
c'git_clone_options'cred_acquire_payload :: Ptr (),
c'git_clone_options'transport :: Ptr C'git_transport,
c'git_clone_options'remote_callbacks :: Ptr C'git_remote_callbacks,
c'git_clone_options'remote_autotag :: C'git_remote_autotag_option_t,
c'git_clone_options'checkout_branch :: CString
} deriving (Eq,Show)
p'git_clone_options'version p = plusPtr p 0
p'git_clone_options'version :: Ptr (C'git_clone_options) -> Ptr (CUInt)
p'git_clone_options'checkout_opts p = plusPtr p 4
p'git_clone_options'checkout_opts :: Ptr (C'git_clone_options) -> Ptr (C'git_checkout_opts)
p'git_clone_options'bare p = plusPtr p 60
p'git_clone_options'bare :: Ptr (C'git_clone_options) -> Ptr (CInt)
p'git_clone_options'fetch_progress_cb p = plusPtr p 64
p'git_clone_options'fetch_progress_cb :: Ptr (C'git_clone_options) -> Ptr (CInt)
p'git_clone_options'fetch_progress_payload p = plusPtr p 68
p'git_clone_options'fetch_progress_payload :: Ptr (C'git_clone_options) -> Ptr (Ptr ())
p'git_clone_options'remote_name p = plusPtr p 72
p'git_clone_options'remote_name :: Ptr (C'git_clone_options) -> Ptr (CString)
p'git_clone_options'pushurl p = plusPtr p 76
p'git_clone_options'pushurl :: Ptr (C'git_clone_options) -> Ptr (CString)
p'git_clone_options'fetch_spec p = plusPtr p 80
p'git_clone_options'fetch_spec :: Ptr (C'git_clone_options) -> Ptr (CString)
p'git_clone_options'push_spec p = plusPtr p 84
p'git_clone_options'push_spec :: Ptr (C'git_clone_options) -> Ptr (CString)
p'git_clone_options'cred_acquire_cb p = plusPtr p 88
p'git_clone_options'cred_acquire_cb :: Ptr (C'git_clone_options) -> Ptr (CInt)
p'git_clone_options'cred_acquire_payload p = plusPtr p 92
p'git_clone_options'cred_acquire_payload :: Ptr (C'git_clone_options) -> Ptr (Ptr ())
p'git_clone_options'transport p = plusPtr p 96
p'git_clone_options'transport :: Ptr (C'git_clone_options) -> Ptr (Ptr C'git_transport)
p'git_clone_options'remote_callbacks p = plusPtr p 100
p'git_clone_options'remote_callbacks :: Ptr (C'git_clone_options) -> Ptr (Ptr C'git_remote_callbacks)
p'git_clone_options'remote_autotag p = plusPtr p 104
p'git_clone_options'remote_autotag :: Ptr (C'git_clone_options) -> Ptr (C'git_remote_autotag_option_t)
p'git_clone_options'checkout_branch p = plusPtr p 108
p'git_clone_options'checkout_branch :: Ptr (C'git_clone_options) -> Ptr (CString)
instance Storable C'git_clone_options where
sizeOf _ = 112
alignment _ = 4
peek p = do
v0 <- peekByteOff p 0
v1 <- peekByteOff p 4
v2 <- peekByteOff p 60
v3 <- peekByteOff p 64
v4 <- peekByteOff p 68
v5 <- peekByteOff p 72
v6 <- peekByteOff p 76
v7 <- peekByteOff p 80
v8 <- peekByteOff p 84
v9 <- peekByteOff p 88
v10 <- peekByteOff p 92
v11 <- peekByteOff p 96
v12 <- peekByteOff p 100
v13 <- peekByteOff p 104
v14 <- peekByteOff p 108
return $ C'git_clone_options v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14
poke p (C'git_clone_options v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14) = do
pokeByteOff p 0 v0
pokeByteOff p 4 v1
pokeByteOff p 60 v2
pokeByteOff p 64 v3
pokeByteOff p 68 v4
pokeByteOff p 72 v5
pokeByteOff p 76 v6
pokeByteOff p 80 v7
pokeByteOff p 84 v8
pokeByteOff p 88 v9
pokeByteOff p 92 v10
pokeByteOff p 96 v11
pokeByteOff p 100 v12
pokeByteOff p 104 v13
pokeByteOff p 108 v14
return ()
foreign import ccall "git_clone" c'git_clone
:: Ptr (Ptr C'git_repository) -> CString -> CString -> Ptr C'git_clone_options -> IO (CInt)
foreign import ccall "&git_clone" p'git_clone
:: FunPtr (Ptr (Ptr C'git_repository) -> CString -> CString -> Ptr C'git_clone_options -> IO (CInt))