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 8
p'git_clone_options'checkout_opts :: Ptr (C'git_clone_options) -> Ptr (C'git_checkout_opts)
p'git_clone_options'bare p = plusPtr p 96
p'git_clone_options'bare :: Ptr (C'git_clone_options) -> Ptr (CInt)
p'git_clone_options'fetch_progress_cb p = plusPtr p 104
p'git_clone_options'fetch_progress_cb :: Ptr (C'git_clone_options) -> Ptr (CInt)
p'git_clone_options'fetch_progress_payload p = plusPtr p 112
p'git_clone_options'fetch_progress_payload :: Ptr (C'git_clone_options) -> Ptr (Ptr ())
p'git_clone_options'remote_name p = plusPtr p 120
p'git_clone_options'remote_name :: Ptr (C'git_clone_options) -> Ptr (CString)
p'git_clone_options'pushurl p = plusPtr p 128
p'git_clone_options'pushurl :: Ptr (C'git_clone_options) -> Ptr (CString)
p'git_clone_options'fetch_spec p = plusPtr p 136
p'git_clone_options'fetch_spec :: Ptr (C'git_clone_options) -> Ptr (CString)
p'git_clone_options'push_spec p = plusPtr p 144
p'git_clone_options'push_spec :: Ptr (C'git_clone_options) -> Ptr (CString)
p'git_clone_options'cred_acquire_cb p = plusPtr p 152
p'git_clone_options'cred_acquire_cb :: Ptr (C'git_clone_options) -> Ptr (CInt)
p'git_clone_options'cred_acquire_payload p = plusPtr p 160
p'git_clone_options'cred_acquire_payload :: Ptr (C'git_clone_options) -> Ptr (Ptr ())
p'git_clone_options'transport p = plusPtr p 168
p'git_clone_options'transport :: Ptr (C'git_clone_options) -> Ptr (Ptr C'git_transport)
p'git_clone_options'remote_callbacks p = plusPtr p 176
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 184
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 192
p'git_clone_options'checkout_branch :: Ptr (C'git_clone_options) -> Ptr (CString)
instance Storable C'git_clone_options where
sizeOf _ = 200
alignment _ = 8
peek p = do
v0 <- peekByteOff p 0
v1 <- peekByteOff p 8
v2 <- peekByteOff p 96
v3 <- peekByteOff p 104
v4 <- peekByteOff p 112
v5 <- peekByteOff p 120
v6 <- peekByteOff p 128
v7 <- peekByteOff p 136
v8 <- peekByteOff p 144
v9 <- peekByteOff p 152
v10 <- peekByteOff p 160
v11 <- peekByteOff p 168
v12 <- peekByteOff p 176
v13 <- peekByteOff p 184
v14 <- peekByteOff p 192
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 8 v1
pokeByteOff p 96 v2
pokeByteOff p 104 v3
pokeByteOff p 112 v4
pokeByteOff p 120 v5
pokeByteOff p 128 v6
pokeByteOff p 136 v7
pokeByteOff p 144 v8
pokeByteOff p 152 v9
pokeByteOff p 160 v10
pokeByteOff p 168 v11
pokeByteOff p 176 v12
pokeByteOff p 184 v13
pokeByteOff p 192 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))