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

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

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

import Bindings.Libgit2.Common
import Bindings.Libgit2.Types
import Bindings.Libgit2.Oid
import Bindings.Libgit2.Object
foreign import ccall "inline_git_blob_lookup" c'git_blob_lookup
  :: Ptr (Ptr C'git_blob) -> Ptr C'git_repository -> Ptr C'git_oid -> IO (CInt)

{-# LINE 13 "Bindings/Libgit2/Blob.hsc" #-}
foreign import ccall "inline_git_blob_lookup_prefix" c'git_blob_lookup_prefix
  :: Ptr (Ptr C'git_blob) -> Ptr C'git_repository -> Ptr C'git_oid -> CSize -> IO (CInt)

{-# LINE 14 "Bindings/Libgit2/Blob.hsc" #-}
foreign import ccall "inline_git_blob_free" c'git_blob_free
  :: Ptr C'git_blob -> IO ()

{-# LINE 15 "Bindings/Libgit2/Blob.hsc" #-}
foreign import ccall "inline_git_blob_id" c'git_blob_id
  :: Ptr C'git_blob -> IO (Ptr C'git_oid)

{-# LINE 16 "Bindings/Libgit2/Blob.hsc" #-}
foreign import ccall "git_blob_rawcontent" c'git_blob_rawcontent
  :: Ptr C'git_blob -> IO (Ptr ())
foreign import ccall "&git_blob_rawcontent" p'git_blob_rawcontent
  :: FunPtr (Ptr C'git_blob -> IO (Ptr ()))

{-# LINE 17 "Bindings/Libgit2/Blob.hsc" #-}
foreign import ccall "git_blob_rawsize" c'git_blob_rawsize
  :: Ptr C'git_blob -> IO (CLong)
foreign import ccall "&git_blob_rawsize" p'git_blob_rawsize
  :: FunPtr (Ptr C'git_blob -> IO (CLong))

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

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

{-# LINE 20 "Bindings/Libgit2/Blob.hsc" #-}
{- typedef int (* git_blob_chunk_cb)(char * content,
                                  size_t max_length,
                                  void * payload); -}
type C'git_blob_chunk_cb = FunPtr (Ptr Char -> CSize -> Ptr () -> IO CInt)
foreign import ccall "wrapper" mk'git_blob_chunk_cb
  :: (Ptr Char -> CSize -> Ptr () -> IO CInt) -> IO C'git_blob_chunk_cb
foreign import ccall "dynamic" mK'git_blob_chunk_cb
  :: C'git_blob_chunk_cb -> (Ptr Char -> CSize -> Ptr () -> IO CInt)

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

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

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

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