module Bindings.Libgit2.Checkout 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
import Bindings.Libgit2.Common
import Bindings.Libgit2.Types
import Bindings.Libgit2.Strarray
import Bindings.Libgit2.Diff
type C'git_checkout_strategy_t = CUInt
c'GIT_CHECKOUT_NONE = 0
c'GIT_CHECKOUT_NONE :: (Num a) => a
c'GIT_CHECKOUT_SAFE = 1
c'GIT_CHECKOUT_SAFE :: (Num a) => a
c'GIT_CHECKOUT_SAFE_CREATE = 2
c'GIT_CHECKOUT_SAFE_CREATE :: (Num a) => a
c'GIT_CHECKOUT_FORCE = 4
c'GIT_CHECKOUT_FORCE :: (Num a) => a
c'GIT_CHECKOUT_ALLOW_CONFLICTS = 16
c'GIT_CHECKOUT_ALLOW_CONFLICTS :: (Num a) => a
c'GIT_CHECKOUT_REMOVE_UNTRACKED = 32
c'GIT_CHECKOUT_REMOVE_UNTRACKED :: (Num a) => a
c'GIT_CHECKOUT_REMOVE_IGNORED = 64
c'GIT_CHECKOUT_REMOVE_IGNORED :: (Num a) => a
c'GIT_CHECKOUT_UPDATE_ONLY = 128
c'GIT_CHECKOUT_UPDATE_ONLY :: (Num a) => a
c'GIT_CHECKOUT_DONT_UPDATE_INDEX = 256
c'GIT_CHECKOUT_DONT_UPDATE_INDEX :: (Num a) => a
c'GIT_CHECKOUT_NO_REFRESH = 512
c'GIT_CHECKOUT_NO_REFRESH :: (Num a) => a
c'GIT_CHECKOUT_DISABLE_PATHSPEC_MATCH = 8192
c'GIT_CHECKOUT_DISABLE_PATHSPEC_MATCH :: (Num a) => a
c'GIT_CHECKOUT_SKIP_UNMERGED = 1024
c'GIT_CHECKOUT_SKIP_UNMERGED :: (Num a) => a
c'GIT_CHECKOUT_USE_OURS = 2048
c'GIT_CHECKOUT_USE_OURS :: (Num a) => a
c'GIT_CHECKOUT_USE_THEIRS = 4096
c'GIT_CHECKOUT_USE_THEIRS :: (Num a) => a
c'GIT_CHECKOUT_UPDATE_SUBMODULES = 65536
c'GIT_CHECKOUT_UPDATE_SUBMODULES :: (Num a) => a
c'GIT_CHECKOUT_UPDATE_SUBMODULES_IF_CHANGED = 131072
c'GIT_CHECKOUT_UPDATE_SUBMODULES_IF_CHANGED :: (Num a) => a
type C'git_checkout_notify_t = CUInt
c'GIT_CHECKOUT_NOTIFY_NONE = 0
c'GIT_CHECKOUT_NOTIFY_NONE :: (Num a) => a
c'GIT_CHECKOUT_NOTIFY_CONFLICT = 1
c'GIT_CHECKOUT_NOTIFY_CONFLICT :: (Num a) => a
c'GIT_CHECKOUT_NOTIFY_DIRTY = 2
c'GIT_CHECKOUT_NOTIFY_DIRTY :: (Num a) => a
c'GIT_CHECKOUT_NOTIFY_UPDATED = 4
c'GIT_CHECKOUT_NOTIFY_UPDATED :: (Num a) => a
c'GIT_CHECKOUT_NOTIFY_UNTRACKED = 8
c'GIT_CHECKOUT_NOTIFY_UNTRACKED :: (Num a) => a
c'GIT_CHECKOUT_NOTIFY_IGNORED = 16
c'GIT_CHECKOUT_NOTIFY_IGNORED :: (Num a) => a
type C'git_checkout_notify_cb = FunPtr (C'git_checkout_notify_t -> CString -> Ptr (C'git_diff_file) -> Ptr (C'git_diff_file) -> Ptr (C'git_diff_file) -> Ptr () -> IO CInt)
foreign import ccall "wrapper" mk'git_checkout_notify_cb
:: (C'git_checkout_notify_t -> CString -> Ptr (C'git_diff_file) -> Ptr (C'git_diff_file) -> Ptr (C'git_diff_file) -> Ptr () -> IO CInt) -> IO C'git_checkout_notify_cb
foreign import ccall "dynamic" mK'git_checkout_notify_cb
:: C'git_checkout_notify_cb -> (C'git_checkout_notify_t -> CString -> Ptr (C'git_diff_file) -> Ptr (C'git_diff_file) -> Ptr (C'git_diff_file) -> Ptr () -> IO CInt)
type C'git_checkout_progress_cb = FunPtr (CString -> CSize -> CSize -> Ptr () -> IO ())
foreign import ccall "wrapper" mk'git_checkout_progress_cb
:: (CString -> CSize -> CSize -> Ptr () -> IO ()) -> IO C'git_checkout_progress_cb
foreign import ccall "dynamic" mK'git_checkout_progress_cb
:: C'git_checkout_progress_cb -> (CString -> CSize -> CSize -> Ptr () -> IO ())
data C'git_checkout_opts = C'git_checkout_opts{
c'git_checkout_opts'version :: CUInt,
c'git_checkout_opts'checkout_strategy :: CUInt,
c'git_checkout_opts'disable_filters :: CInt,
c'git_checkout_opts'dir_mode :: CUInt,
c'git_checkout_opts'file_mode :: CUInt,
c'git_checkout_opts'file_open_flags :: CInt,
c'git_checkout_opts'notify_flags :: CUInt,
c'git_checkout_opts'notify_cb :: C'git_checkout_notify_cb,
c'git_checkout_opts'notify_payload :: Ptr (),
c'git_checkout_opts'progress_cb :: C'git_checkout_progress_cb,
c'git_checkout_opts'progress_payload :: Ptr (),
c'git_checkout_opts'paths :: C'git_strarray,
c'git_checkout_opts'baseline :: Ptr C'git_tree
} deriving (Eq,Show)
p'git_checkout_opts'version p = plusPtr p 0
p'git_checkout_opts'version :: Ptr (C'git_checkout_opts) -> Ptr (CUInt)
p'git_checkout_opts'checkout_strategy p = plusPtr p 4
p'git_checkout_opts'checkout_strategy :: Ptr (C'git_checkout_opts) -> Ptr (CUInt)
p'git_checkout_opts'disable_filters p = plusPtr p 8
p'git_checkout_opts'disable_filters :: Ptr (C'git_checkout_opts) -> Ptr (CInt)
p'git_checkout_opts'dir_mode p = plusPtr p 12
p'git_checkout_opts'dir_mode :: Ptr (C'git_checkout_opts) -> Ptr (CUInt)
p'git_checkout_opts'file_mode p = plusPtr p 16
p'git_checkout_opts'file_mode :: Ptr (C'git_checkout_opts) -> Ptr (CUInt)
p'git_checkout_opts'file_open_flags p = plusPtr p 20
p'git_checkout_opts'file_open_flags :: Ptr (C'git_checkout_opts) -> Ptr (CInt)
p'git_checkout_opts'notify_flags p = plusPtr p 24
p'git_checkout_opts'notify_flags :: Ptr (C'git_checkout_opts) -> Ptr (CUInt)
p'git_checkout_opts'notify_cb p = plusPtr p 32
p'git_checkout_opts'notify_cb :: Ptr (C'git_checkout_opts) -> Ptr (C'git_checkout_notify_cb)
p'git_checkout_opts'notify_payload p = plusPtr p 40
p'git_checkout_opts'notify_payload :: Ptr (C'git_checkout_opts) -> Ptr (Ptr ())
p'git_checkout_opts'progress_cb p = plusPtr p 48
p'git_checkout_opts'progress_cb :: Ptr (C'git_checkout_opts) -> Ptr (C'git_checkout_progress_cb)
p'git_checkout_opts'progress_payload p = plusPtr p 56
p'git_checkout_opts'progress_payload :: Ptr (C'git_checkout_opts) -> Ptr (Ptr ())
p'git_checkout_opts'paths p = plusPtr p 64
p'git_checkout_opts'paths :: Ptr (C'git_checkout_opts) -> Ptr (C'git_strarray)
p'git_checkout_opts'baseline p = plusPtr p 80
p'git_checkout_opts'baseline :: Ptr (C'git_checkout_opts) -> Ptr (Ptr C'git_tree)
instance Storable C'git_checkout_opts where
sizeOf _ = 88
alignment _ = 8
peek p = do
v0 <- peekByteOff p 0
v1 <- peekByteOff p 4
v2 <- peekByteOff p 8
v3 <- peekByteOff p 12
v4 <- peekByteOff p 16
v5 <- peekByteOff p 20
v6 <- peekByteOff p 24
v7 <- peekByteOff p 32
v8 <- peekByteOff p 40
v9 <- peekByteOff p 48
v10 <- peekByteOff p 56
v11 <- peekByteOff p 64
v12 <- peekByteOff p 80
return $ C'git_checkout_opts v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12
poke p (C'git_checkout_opts v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12) = do
pokeByteOff p 0 v0
pokeByteOff p 4 v1
pokeByteOff p 8 v2
pokeByteOff p 12 v3
pokeByteOff p 16 v4
pokeByteOff p 20 v5
pokeByteOff p 24 v6
pokeByteOff p 32 v7
pokeByteOff p 40 v8
pokeByteOff p 48 v9
pokeByteOff p 56 v10
pokeByteOff p 64 v11
pokeByteOff p 80 v12
return ()
foreign import ccall "git_checkout_head" c'git_checkout_head
:: Ptr C'git_repository -> Ptr C'git_checkout_opts -> IO (CInt)
foreign import ccall "&git_checkout_head" p'git_checkout_head
:: FunPtr (Ptr C'git_repository -> Ptr C'git_checkout_opts -> IO (CInt))
foreign import ccall "git_checkout_index" c'git_checkout_index
:: Ptr C'git_repository -> Ptr C'git_index -> Ptr C'git_checkout_opts -> IO (CInt)
foreign import ccall "&git_checkout_index" p'git_checkout_index
:: FunPtr (Ptr C'git_repository -> Ptr C'git_index -> Ptr C'git_checkout_opts -> IO (CInt))
foreign import ccall "git_checkout_tree" c'git_checkout_tree
:: Ptr C'git_repository -> Ptr C'git_object -> Ptr C'git_checkout_opts -> IO (CInt)
foreign import ccall "&git_checkout_tree" p'git_checkout_tree
:: FunPtr (Ptr C'git_repository -> Ptr C'git_object -> Ptr C'git_checkout_opts -> IO (CInt))