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

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

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

import Bindings.Libgit2.Common
import Bindings.Libgit2.Types
import Bindings.Libgit2.Oid
import Bindings.Libgit2.Object
import Bindings.Libgit2.Strarray
foreign import ccall "inline_git_tag_lookup" c'git_tag_lookup
  :: Ptr (Ptr C'git_tag) -> Ptr C'git_repository -> Ptr C'git_oid -> IO (CInt)

{-# LINE 14 "Bindings/Libgit2/Tag.hsc" #-}
foreign import ccall "inline_git_tag_lookup_prefix" c'git_tag_lookup_prefix
  :: Ptr (Ptr C'git_tag) -> Ptr C'git_repository -> Ptr C'git_oid -> CSize -> IO (CInt)

{-# LINE 15 "Bindings/Libgit2/Tag.hsc" #-}
foreign import ccall "inline_git_tag_free" c'git_tag_free
  :: Ptr C'git_tag -> IO ()

{-# LINE 16 "Bindings/Libgit2/Tag.hsc" #-}
foreign import ccall "git_tag_id" c'git_tag_id
  :: Ptr C'git_tag -> IO (Ptr C'git_oid)
foreign import ccall "&git_tag_id" p'git_tag_id
  :: FunPtr (Ptr C'git_tag -> IO (Ptr C'git_oid))

{-# LINE 17 "Bindings/Libgit2/Tag.hsc" #-}
foreign import ccall "git_tag_target" c'git_tag_target
  :: Ptr (Ptr C'git_object) -> Ptr C'git_tag -> IO (CInt)
foreign import ccall "&git_tag_target" p'git_tag_target
  :: FunPtr (Ptr (Ptr C'git_object) -> Ptr C'git_tag -> IO (CInt))

{-# LINE 18 "Bindings/Libgit2/Tag.hsc" #-}
foreign import ccall "git_tag_target_id" c'git_tag_target_id
  :: Ptr C'git_tag -> IO (Ptr C'git_oid)
foreign import ccall "&git_tag_target_id" p'git_tag_target_id
  :: FunPtr (Ptr C'git_tag -> IO (Ptr C'git_oid))

{-# LINE 19 "Bindings/Libgit2/Tag.hsc" #-}
foreign import ccall "git_tag_target_type" c'git_tag_target_type
  :: Ptr C'git_tag -> IO (C'git_otype)
foreign import ccall "&git_tag_target_type" p'git_tag_target_type
  :: FunPtr (Ptr C'git_tag -> IO (C'git_otype))

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

{-# LINE 21 "Bindings/Libgit2/Tag.hsc" #-}
foreign import ccall "git_tag_tagger" c'git_tag_tagger
  :: Ptr C'git_tag -> IO (Ptr C'git_signature)
foreign import ccall "&git_tag_tagger" p'git_tag_tagger
  :: FunPtr (Ptr C'git_tag -> IO (Ptr C'git_signature))

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

{-# LINE 23 "Bindings/Libgit2/Tag.hsc" #-}
foreign import ccall "git_tag_create" c'git_tag_create
  :: Ptr C'git_oid -> Ptr C'git_repository -> CString -> Ptr C'git_object -> Ptr C'git_signature -> CString -> CInt -> IO (CInt)
foreign import ccall "&git_tag_create" p'git_tag_create
  :: FunPtr (Ptr C'git_oid -> Ptr C'git_repository -> CString -> Ptr C'git_object -> Ptr C'git_signature -> CString -> CInt -> IO (CInt))

{-# LINE 24 "Bindings/Libgit2/Tag.hsc" #-}
foreign import ccall "git_tag_create_frombuffer" c'git_tag_create_frombuffer
  :: Ptr C'git_oid -> Ptr C'git_repository -> CString -> CInt -> IO (CInt)
foreign import ccall "&git_tag_create_frombuffer" p'git_tag_create_frombuffer
  :: FunPtr (Ptr C'git_oid -> Ptr C'git_repository -> CString -> CInt -> IO (CInt))

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

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

{-# LINE 27 "Bindings/Libgit2/Tag.hsc" #-}
foreign import ccall "git_tag_list" c'git_tag_list
  :: Ptr C'git_strarray -> Ptr C'git_repository -> IO (CInt)
foreign import ccall "&git_tag_list" p'git_tag_list
  :: FunPtr (Ptr C'git_strarray -> Ptr C'git_repository -> IO (CInt))

{-# LINE 28 "Bindings/Libgit2/Tag.hsc" #-}
foreign import ccall "git_tag_list_match" c'git_tag_list_match
  :: Ptr C'git_strarray -> CString -> Ptr C'git_repository -> IO (CInt)
foreign import ccall "&git_tag_list_match" p'git_tag_list_match
  :: FunPtr (Ptr C'git_strarray -> CString -> Ptr C'git_repository -> IO (CInt))

{-# LINE 29 "Bindings/Libgit2/Tag.hsc" #-}
{- typedef int (* git_tag_foreach_cb)(const char * name,
                                   git_oid * oid,
                                   void * payload); -}
type C'git_tag_foreach_cb = FunPtr (CString -> Ptr (C'git_oid) -> Ptr () -> IO CInt)
foreign import ccall "wrapper" mk'git_tag_foreach_cb
  :: (CString -> Ptr (C'git_oid) -> Ptr () -> IO CInt) -> IO C'git_tag_foreach_cb
foreign import ccall "dynamic" mK'git_tag_foreach_cb
  :: C'git_tag_foreach_cb -> (CString -> Ptr (C'git_oid) -> Ptr () -> IO CInt)

{-# LINE 33 "Bindings/Libgit2/Tag.hsc" #-}
foreign import ccall "git_tag_foreach" c'git_tag_foreach
  :: Ptr C'git_repository -> C'git_tag_foreach_cb -> Ptr () -> IO (CInt)
foreign import ccall "&git_tag_foreach" p'git_tag_foreach
  :: FunPtr (Ptr C'git_repository -> C'git_tag_foreach_cb -> Ptr () -> IO (CInt))

{-# LINE 34 "Bindings/Libgit2/Tag.hsc" #-}
foreign import ccall "git_tag_peel" c'git_tag_peel
  :: Ptr (Ptr C'git_object) -> Ptr C'git_tag -> IO (CInt)
foreign import ccall "&git_tag_peel" p'git_tag_peel
  :: FunPtr (Ptr (Ptr C'git_object) -> Ptr C'git_tag -> IO (CInt))

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