{-# 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 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 ()

{-# 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" #-}