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

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

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

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

import Bindings.Libgit2.Common
import Bindings.Libgit2.Types
c'GIT_OID_RAWSZ = 20
c'GIT_OID_RAWSZ :: (Num a) => a

{-# LINE 10 "Bindings/Libgit2/Oid.hsc" #-}
c'GIT_OID_HEXSZ = 40
c'GIT_OID_HEXSZ :: (Num a) => a

{-# LINE 11 "Bindings/Libgit2/Oid.hsc" #-}
data C'git_oid_shorten = C'git_oid_shorten

{-# LINE 12 "Bindings/Libgit2/Oid.hsc" #-}
{- typedef struct {
	
	unsigned char id[GIT_OID_RAWSZ];
} git_oid; -}
data C'git_oid = C'git_oid{
{-# LINE 17 "Bindings/Libgit2/Oid.hsc" #-}

  c'git_oid'id :: [Word8]
{-# LINE 18 "Bindings/Libgit2/Oid.hsc" #-}

 } deriving (Eq,Show)
instance Storable C'git_oid where
  sizeOf _ = 20
  alignment = sizeOf
  peek p = do
    v0 <- peekArray 20 (plusPtr p 0)
    return $ C'git_oid v0
  poke p (C'git_oid v0) = do
    pokeArray (plusPtr p 0) (take 20 v0)
    return ()

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

{-# LINE 20 "Bindings/Libgit2/Oid.hsc" #-}
foreign import ccall "git_oid_mkraw" c'git_oid_mkraw
  :: Ptr C'git_oid -> Ptr Word8 -> IO ()
foreign import ccall "&git_oid_mkraw" p'git_oid_mkraw
  :: FunPtr (Ptr C'git_oid -> Ptr Word8 -> IO ())

{-# LINE 21 "Bindings/Libgit2/Oid.hsc" #-}
foreign import ccall "git_oid_fmt" c'git_oid_fmt
  :: CString -> Ptr C'git_oid -> IO ()
foreign import ccall "&git_oid_fmt" p'git_oid_fmt
  :: FunPtr (CString -> Ptr C'git_oid -> IO ())

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

{-# LINE 23 "Bindings/Libgit2/Oid.hsc" #-}
foreign import ccall "git_oid_allocfmt" c'git_oid_allocfmt
  :: Ptr C'git_oid -> IO (CString)
foreign import ccall "&git_oid_allocfmt" p'git_oid_allocfmt
  :: FunPtr (Ptr C'git_oid -> IO (CString))

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

{-# LINE 25 "Bindings/Libgit2/Oid.hsc" #-}
foreign import ccall "git_oid_cpy" c'git_oid_cpy
  :: Ptr C'git_oid -> Ptr C'git_oid -> IO ()
foreign import ccall "&git_oid_cpy" p'git_oid_cpy
  :: FunPtr (Ptr C'git_oid -> Ptr C'git_oid -> IO ())

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

{-# LINE 27 "Bindings/Libgit2/Oid.hsc" #-}