{-# LINE 1 "Bindings/Libgit2/Clone.hsc" #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# LINE 2 "Bindings/Libgit2/Clone.hsc" #-}

{-# LINE 3 "Bindings/Libgit2/Clone.hsc" #-}

{-# LINE 4 "Bindings/Libgit2/Clone.hsc" #-}

{-# LINE 5 "Bindings/Libgit2/Clone.hsc" #-}
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

{-# LINE 8 "Bindings/Libgit2/Clone.hsc" #-}

import Bindings.Libgit2.Common
import Bindings.Libgit2.Types
import Bindings.Libgit2.Indexer
import Bindings.Libgit2.Checkout
import Bindings.Libgit2.Remote
import Bindings.Libgit2.Transport
{- typedef struct git_clone_options {
            unsigned int version;
            git_checkout_opts checkout_opts;
            int bare;
            git_transfer_progress_callback fetch_progress_cb;
            void * fetch_progress_payload;
            const char * remote_name;
            const char * pushurl;
            const char * fetch_spec;
            const char * push_spec;
            git_cred_acquire_cb cred_acquire_cb;
            void * cred_acquire_payload;
            git_transport * transport;
            git_remote_callbacks * remote_callbacks;
            git_remote_autotag_option_t remote_autotag;
            const char * checkout_branch;
        } git_clone_options; -}

{-# LINE 33 "Bindings/Libgit2/Clone.hsc" #-}

{-# LINE 34 "Bindings/Libgit2/Clone.hsc" #-}

{-# LINE 35 "Bindings/Libgit2/Clone.hsc" #-}

{-# LINE 36 "Bindings/Libgit2/Clone.hsc" #-}

{-# LINE 37 "Bindings/Libgit2/Clone.hsc" #-}

{-# LINE 38 "Bindings/Libgit2/Clone.hsc" #-}

{-# LINE 39 "Bindings/Libgit2/Clone.hsc" #-}

{-# LINE 40 "Bindings/Libgit2/Clone.hsc" #-}

{-# LINE 41 "Bindings/Libgit2/Clone.hsc" #-}

{-# LINE 42 "Bindings/Libgit2/Clone.hsc" #-}

{-# LINE 43 "Bindings/Libgit2/Clone.hsc" #-}

{-# LINE 44 "Bindings/Libgit2/Clone.hsc" #-}

{-# LINE 45 "Bindings/Libgit2/Clone.hsc" #-}

{-# LINE 46 "Bindings/Libgit2/Clone.hsc" #-}

{-# LINE 47 "Bindings/Libgit2/Clone.hsc" #-}

{-# LINE 48 "Bindings/Libgit2/Clone.hsc" #-}
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 ()

{-# LINE 49 "Bindings/Libgit2/Clone.hsc" #-}
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))

{-# LINE 50 "Bindings/Libgit2/Clone.hsc" #-}