{-# LINE 1 "Bindings/Libgit2/Types.hsc" #-}

{-# LINE 2 "Bindings/Libgit2/Types.hsc" #-}

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

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


type C'git_off_t = Int64

{-# LINE 9 "Bindings/Libgit2/Types.hsc" #-}
{- typedef enum {
	GIT_OBJ_ANY = -2,		/**< Object can be any of the following */
	GIT_OBJ_BAD = -1,       /**< Object is invalid. */
	GIT_OBJ__EXT1 = 0,      /**< Reserved for future use. */
	GIT_OBJ_COMMIT = 1,     /**< A commit object. */
	GIT_OBJ_TREE = 2,       /**< A tree (directory listing) object. */
	GIT_OBJ_BLOB = 3,       /**< A file revision object. */
	GIT_OBJ_TAG = 4,        /**< An annotated tag object. */
	GIT_OBJ__EXT2 = 5,      /**< Reserved for future use. */
	GIT_OBJ_OFS_DELTA = 6,  /**< A delta, base is given by an offset. */
	GIT_OBJ_REF_DELTA = 7,  /**< A delta, base is given by object id. */
} git_otype; -}
type C'git_otype = CInt

{-# LINE 22 "Bindings/Libgit2/Types.hsc" #-}
c'GIT_OBJ_ANY = -2
c'GIT_OBJ_ANY :: (Num a) => a

{-# LINE 23 "Bindings/Libgit2/Types.hsc" #-}
c'GIT_OBJ_BAD = -1
c'GIT_OBJ_BAD :: (Num a) => a

{-# LINE 24 "Bindings/Libgit2/Types.hsc" #-}
c'GIT_OBJ__EXT1 = 0
c'GIT_OBJ__EXT1 :: (Num a) => a

{-# LINE 25 "Bindings/Libgit2/Types.hsc" #-}
c'GIT_OBJ_COMMIT = 1
c'GIT_OBJ_COMMIT :: (Num a) => a

{-# LINE 26 "Bindings/Libgit2/Types.hsc" #-}
c'GIT_OBJ_TREE = 2
c'GIT_OBJ_TREE :: (Num a) => a

{-# LINE 27 "Bindings/Libgit2/Types.hsc" #-}
c'GIT_OBJ_BLOB = 3
c'GIT_OBJ_BLOB :: (Num a) => a

{-# LINE 28 "Bindings/Libgit2/Types.hsc" #-}
c'GIT_OBJ_TAG = 4
c'GIT_OBJ_TAG :: (Num a) => a

{-# LINE 29 "Bindings/Libgit2/Types.hsc" #-}
c'GIT_OBJ__EXT2 = 5
c'GIT_OBJ__EXT2 :: (Num a) => a

{-# LINE 30 "Bindings/Libgit2/Types.hsc" #-}
c'GIT_OBJ_OFS_DELTA = 6
c'GIT_OBJ_OFS_DELTA :: (Num a) => a

{-# LINE 31 "Bindings/Libgit2/Types.hsc" #-}
c'GIT_OBJ_REF_DELTA = 7
c'GIT_OBJ_REF_DELTA :: (Num a) => a

{-# LINE 32 "Bindings/Libgit2/Types.hsc" #-}
{- typedef enum {
	GIT_REF_INVALID = 0, /** Invalid reference */
	GIT_REF_OID = 1, /** A reference which points at an object id */
	GIT_REF_SYMBOLIC = 2, /** A reference which points at another reference */
	GIT_REF_PACKED = 4,
	GIT_REF_HAS_PEEL = 8,
	GIT_REF_LISTALL = GIT_REF_OID|GIT_REF_SYMBOLIC|GIT_REF_PACKED,
} git_rtype; -}
type C'git_rtype = CUInt

{-# LINE 41 "Bindings/Libgit2/Types.hsc" #-}
c'GIT_REF_INVALID = 0
c'GIT_REF_INVALID :: (Num a) => a

{-# LINE 42 "Bindings/Libgit2/Types.hsc" #-}
c'GIT_REF_OID = 1
c'GIT_REF_OID :: (Num a) => a

{-# LINE 43 "Bindings/Libgit2/Types.hsc" #-}
c'GIT_REF_SYMBOLIC = 2
c'GIT_REF_SYMBOLIC :: (Num a) => a

{-# LINE 44 "Bindings/Libgit2/Types.hsc" #-}
c'GIT_REF_PACKED = 4
c'GIT_REF_PACKED :: (Num a) => a

{-# LINE 45 "Bindings/Libgit2/Types.hsc" #-}
c'GIT_REF_HAS_PEEL = 8
c'GIT_REF_HAS_PEEL :: (Num a) => a

{-# LINE 46 "Bindings/Libgit2/Types.hsc" #-}
c'GIT_REF_LISTALL = 7
c'GIT_REF_LISTALL :: (Num a) => a

{-# LINE 47 "Bindings/Libgit2/Types.hsc" #-}
data C'git_odb = C'git_odb

{-# LINE 48 "Bindings/Libgit2/Types.hsc" #-}
data C'git_odb_backend = C'git_odb_backend

{-# LINE 49 "Bindings/Libgit2/Types.hsc" #-}
data C'git_repository = C'git_repository

{-# LINE 50 "Bindings/Libgit2/Types.hsc" #-}
data C'git_object = C'git_object

{-# LINE 51 "Bindings/Libgit2/Types.hsc" #-}
data C'git_revwalk = C'git_revwalk

{-# LINE 52 "Bindings/Libgit2/Types.hsc" #-}
data C'git_tag = C'git_tag

{-# LINE 53 "Bindings/Libgit2/Types.hsc" #-}
data C'git_blob = C'git_blob

{-# LINE 54 "Bindings/Libgit2/Types.hsc" #-}
data C'git_commit = C'git_commit

{-# LINE 55 "Bindings/Libgit2/Types.hsc" #-}
data C'git_tree_entry = C'git_tree_entry

{-# LINE 56 "Bindings/Libgit2/Types.hsc" #-}
data C'git_tree = C'git_tree

{-# LINE 57 "Bindings/Libgit2/Types.hsc" #-}
data C'git_index = C'git_index

{-# LINE 58 "Bindings/Libgit2/Types.hsc" #-}
data C'git_reference = C'git_reference

{-# LINE 59 "Bindings/Libgit2/Types.hsc" #-}
{- typedef struct git_time {
	time_t time; 
	int offset; 
} git_time; -}
data C'git_time = C'git_time{
{-# LINE 64 "Bindings/Libgit2/Types.hsc" #-}

  c'git_time'time :: CTime
{-# LINE 65 "Bindings/Libgit2/Types.hsc" #-}
,
  c'git_time'offset :: CInt
{-# LINE 66 "Bindings/Libgit2/Types.hsc" #-}

 } deriving (Eq,Show)
instance Storable C'git_time where
  sizeOf _ = 8
  alignment = sizeOf
  peek p = do
    v0 <- peekByteOff p 0
    v1 <- peekByteOff p 4
    return $ C'git_time v0 v1
  poke p (C'git_time v0 v1) = do
    pokeByteOff p 0 v0
    pokeByteOff p 4 v1
    return ()

{-# LINE 67 "Bindings/Libgit2/Types.hsc" #-}
{- typedef struct git_signature {
	char *name; 
	char *email; 
	git_time when; 
} git_signature; -}
data C'git_signature = C'git_signature{
{-# LINE 73 "Bindings/Libgit2/Types.hsc" #-}

  c'git_signature'name :: CString
{-# LINE 74 "Bindings/Libgit2/Types.hsc" #-}
,
  c'git_signature'email :: CString
{-# LINE 75 "Bindings/Libgit2/Types.hsc" #-}
,
  c'git_signature'when :: C'git_time
{-# LINE 76 "Bindings/Libgit2/Types.hsc" #-}

 } deriving (Eq,Show)
instance Storable C'git_signature where
  sizeOf _ = 16
  alignment = sizeOf
  peek p = do
    v0 <- peekByteOff p 0
    v1 <- peekByteOff p 4
    v2 <- peekByteOff p 8
    return $ C'git_signature v0 v1 v2
  poke p (C'git_signature v0 v1 v2) = do
    pokeByteOff p 0 v0
    pokeByteOff p 4 v1
    pokeByteOff p 8 v2
    return ()

{-# LINE 77 "Bindings/Libgit2/Types.hsc" #-}