{-# LINE 1 "./GI/Cairo/Render/Internal/Utilities.chs" #-}
{-# LANGUAGE FlexibleInstances #-}
module GI.Cairo.Render.Internal.Utilities where
import qualified Foreign.C.String as C2HSImp
import qualified Foreign.C.Types as C2HSImp
import qualified Foreign.Ptr as C2HSImp
import qualified System.IO.Unsafe as C2HSImp
import GI.Cairo.Render.Types
{-# LINE 18 "./GI/Cairo/Render/Internal/Utilities.chs" #-}
import Foreign
import Foreign.C
import System.IO.Unsafe (unsafePerformIO)
import Codec.Binary.UTF8.String
import Data.Char (ord, chr)
import Data.Text (Text)
import Data.ByteString (useAsCString)
import qualified Data.Text.Encoding as T (encodeUtf8)
{-# LINE 33 "./GI/Cairo/Render/Internal/Utilities.chs" #-}
statusToString :: (Status) -> IO ((String))
statusToString a1 =
let {a1' = cFromEnum a1} in
statusToString'_ a1' >>= \res ->
C2HSImp.peekCString res >>= \res' ->
return (res')
{-# LINE 35 "./GI/Cairo/Render/Internal/Utilities.chs" #-}
version :: (Int)
version =
C2HSImp.unsafePerformIO $
version'_ >>= \res ->
let {res' = fromIntegral res} in
return (res')
{-# LINE 36 "./GI/Cairo/Render/Internal/Utilities.chs" #-}
versionString :: (String)
versionString =
C2HSImp.unsafePerformIO $
versionString'_ >>= \res ->
C2HSImp.peekCString res >>= \res' ->
return (res')
{-# LINE 37 "./GI/Cairo/Render/Internal/Utilities.chs" #-}
class CairoString s where
withUTFString :: s -> (CString -> IO a) -> IO a
instance CairoString [Char] where
withUTFString = withCAString . encodeString
instance CairoString Text where
withUTFString s = useAsCString (T.encodeUtf8 s)
foreign import ccall safe "GI/Cairo/Render/Internal/Utilities.chs.h cairo_status_to_string"
statusToString'_ :: (C2HSImp.CInt -> (IO (C2HSImp.Ptr C2HSImp.CChar)))
foreign import ccall safe "GI/Cairo/Render/Internal/Utilities.chs.h cairo_version"
version'_ :: (IO C2HSImp.CInt)
foreign import ccall safe "GI/Cairo/Render/Internal/Utilities.chs.h cairo_version_string"
versionString'_ :: (IO (C2HSImp.Ptr C2HSImp.CChar))