clingo-0.2.0.0: src/Clingo/Raw/Basic.hs
{-# LANGUAGE ForeignFunctionInterface #-}
module Clingo.Raw.Basic
(
errorString,
errorCode,
errorMessage,
setError,
warningString,
version
)
where
import Foreign
import Foreign.C
import Control.Monad.IO.Class
import Clingo.Raw.Enums
foreign import ccall "clingo.h clingo_error_string" errorStringFFI ::
ClingoError -> IO CString
foreign import ccall "clingo.h clingo_error_code" errorCodeFFI ::
IO ClingoError
foreign import ccall "clingo.h clingo_error_message" errorMessageFFI ::
IO CString
foreign import ccall "clingo.h clingo_set_error" setErrorFFI ::
ClingoError -> CString -> IO ()
foreign import ccall "clingo.h clingo_warning_string" warningStringFFI ::
ClingoWarning -> IO CString
foreign import ccall "clingo.h clingo_version" versionFFI ::
Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
errorString :: MonadIO m => ClingoError -> m CString
errorString = liftIO . errorStringFFI
errorCode :: MonadIO m => m ClingoError
errorCode = liftIO errorCodeFFI
errorMessage :: MonadIO m => m CString
errorMessage = liftIO errorMessageFFI
setError :: MonadIO m => ClingoError -> CString -> m ()
setError a b = liftIO $ setErrorFFI a b
warningString :: MonadIO m => ClingoWarning -> m CString
warningString = liftIO . warningStringFFI
version :: MonadIO m => Ptr CInt -> Ptr CInt -> Ptr CInt -> m ()
version a b c = liftIO $ versionFFI a b c