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

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

{-# LINE 4 "Bindings/Libgit2/Branch.hsc" #-}
module Bindings.Libgit2.Branch 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 7 "Bindings/Libgit2/Branch.hsc" #-}

import Bindings.Libgit2.Common
import Bindings.Libgit2.Oid
import Bindings.Libgit2.Types
foreign import ccall "git_branch_create" c'git_branch_create
  :: Ptr (Ptr C'git_reference) -> Ptr C'git_repository -> CString -> Ptr C'git_commit -> CInt -> IO (CInt)
foreign import ccall "&git_branch_create" p'git_branch_create
  :: FunPtr (Ptr (Ptr C'git_reference) -> Ptr C'git_repository -> CString -> Ptr C'git_commit -> CInt -> IO (CInt))

{-# LINE 12 "Bindings/Libgit2/Branch.hsc" #-}
foreign import ccall "git_branch_delete" c'git_branch_delete
  :: Ptr C'git_reference -> IO (CInt)
foreign import ccall "&git_branch_delete" p'git_branch_delete
  :: FunPtr (Ptr C'git_reference -> IO (CInt))

{-# LINE 13 "Bindings/Libgit2/Branch.hsc" #-}
{- typedef int (* git_branch_foreach_cb)(const char * branch_name,
                                      git_branch_t branch_type,
                                      void * payload); -}
type C'git_branch_foreach_cb = FunPtr (CString -> C'git_branch_t -> Ptr () -> IO (CInt))
foreign import ccall "wrapper" mk'git_branch_foreach_cb
  :: (CString -> C'git_branch_t -> Ptr () -> IO (CInt)) -> IO C'git_branch_foreach_cb
foreign import ccall "dynamic" mK'git_branch_foreach_cb
  :: C'git_branch_foreach_cb -> (CString -> C'git_branch_t -> Ptr () -> IO (CInt))

{-# LINE 17 "Bindings/Libgit2/Branch.hsc" #-}
foreign import ccall "git_branch_foreach" c'git_branch_foreach
  :: Ptr C'git_repository -> CUInt -> C'git_branch_foreach_cb -> Ptr () -> IO (CInt)
foreign import ccall "&git_branch_foreach" p'git_branch_foreach
  :: FunPtr (Ptr C'git_repository -> CUInt -> C'git_branch_foreach_cb -> Ptr () -> IO (CInt))

{-# LINE 18 "Bindings/Libgit2/Branch.hsc" #-}
foreign import ccall "git_branch_move" c'git_branch_move
  :: Ptr (Ptr C'git_reference) -> Ptr C'git_reference -> CString -> CInt -> IO (CInt)
foreign import ccall "&git_branch_move" p'git_branch_move
  :: FunPtr (Ptr (Ptr C'git_reference) -> Ptr C'git_reference -> CString -> CInt -> IO (CInt))

{-# LINE 19 "Bindings/Libgit2/Branch.hsc" #-}
foreign import ccall "git_branch_lookup" c'git_branch_lookup
  :: Ptr (Ptr C'git_reference) -> Ptr C'git_repository -> CString -> C'git_branch_t -> IO (CInt)
foreign import ccall "&git_branch_lookup" p'git_branch_lookup
  :: FunPtr (Ptr (Ptr C'git_reference) -> Ptr C'git_repository -> CString -> C'git_branch_t -> IO (CInt))

{-# LINE 20 "Bindings/Libgit2/Branch.hsc" #-}
foreign import ccall "git_branch_name" c'git_branch_name
  :: Ptr (CString) -> Ptr C'git_reference -> IO (CInt)
foreign import ccall "&git_branch_name" p'git_branch_name
  :: FunPtr (Ptr (CString) -> Ptr C'git_reference -> IO (CInt))

{-# LINE 21 "Bindings/Libgit2/Branch.hsc" #-}
foreign import ccall "git_branch_upstream" c'git_branch_upstream
  :: Ptr (Ptr C'git_reference) -> Ptr C'git_reference -> IO (CInt)
foreign import ccall "&git_branch_upstream" p'git_branch_upstream
  :: FunPtr (Ptr (Ptr C'git_reference) -> Ptr C'git_reference -> IO (CInt))

{-# LINE 22 "Bindings/Libgit2/Branch.hsc" #-}
foreign import ccall "git_branch_set_upstream" c'git_branch_set_upstream
  :: Ptr C'git_reference -> CString -> IO (CInt)
foreign import ccall "&git_branch_set_upstream" p'git_branch_set_upstream
  :: FunPtr (Ptr C'git_reference -> CString -> IO (CInt))

{-# LINE 23 "Bindings/Libgit2/Branch.hsc" #-}
foreign import ccall "git_branch_upstream_name" c'git_branch_upstream_name
  :: CString -> CSize -> Ptr C'git_repository -> CString -> IO (CInt)
foreign import ccall "&git_branch_upstream_name" p'git_branch_upstream_name
  :: FunPtr (CString -> CSize -> Ptr C'git_repository -> CString -> IO (CInt))

{-# LINE 24 "Bindings/Libgit2/Branch.hsc" #-}
foreign import ccall "git_branch_is_head" c'git_branch_is_head
  :: Ptr C'git_reference -> IO (CInt)
foreign import ccall "&git_branch_is_head" p'git_branch_is_head
  :: FunPtr (Ptr C'git_reference -> IO (CInt))

{-# LINE 25 "Bindings/Libgit2/Branch.hsc" #-}
foreign import ccall "git_branch_remote_name" c'git_branch_remote_name
  :: CString -> CSize -> Ptr C'git_repository -> CString -> IO (CInt)
foreign import ccall "&git_branch_remote_name" p'git_branch_remote_name
  :: FunPtr (CString -> CSize -> Ptr C'git_repository -> CString -> IO (CInt))

{-# LINE 26 "Bindings/Libgit2/Branch.hsc" #-}