{-# LINE 1 "src/System/GLib/ErrorReporting.hsc" #-} {-# OPTIONS_GHC -Wall -fno-warn-tabs #-} module System.GLib.ErrorReporting ( GError(..), mkGError, gErrorReport ) where import Foreign.Ptr import Foreign.Storable import Foreign.C.Types import Foreign.C.String import System.GLib.Quarks data GError = GError { GError -> GQuark gErrorDomain :: GQuark, GError -> CInt gErrorCode :: CInt, GError -> String gErrorMessage :: String } deriving Int -> GError -> ShowS [GError] -> ShowS GError -> String forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [GError] -> ShowS $cshowList :: [GError] -> ShowS show :: GError -> String $cshow :: GError -> String showsPrec :: Int -> GError -> ShowS $cshowsPrec :: Int -> GError -> ShowS Show mkGError :: Ptr GError -> IO GError mkGError :: Ptr GError -> IO GError mkGError Ptr GError p = do GError ge <- GQuark -> CInt -> String -> GError GError forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> (\Ptr GError hsc_ptr -> forall a b. Storable a => Ptr b -> Int -> IO a peekByteOff Ptr GError hsc_ptr Int 0) Ptr GError p {-# LINE 24 "src/System/GLib/ErrorReporting.hsc" #-} forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b <*> (\Ptr GError hsc_ptr -> forall a b. Storable a => Ptr b -> Int -> IO a peekByteOff Ptr GError hsc_ptr Int 4) Ptr GError p {-# LINE 25 "src/System/GLib/ErrorReporting.hsc" #-} forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b <*> (CString -> IO String peekCString forall (m :: * -> *) a b. Monad m => (a -> m b) -> m a -> m b =<< (\Ptr GError hsc_ptr -> forall a b. Storable a => Ptr b -> Int -> IO a peekByteOff Ptr GError hsc_ptr Int 8) Ptr GError p) {-# LINE 26 "src/System/GLib/ErrorReporting.hsc" #-} Ptr GError -> IO () c_g_error_free Ptr GError p forall (f :: * -> *) a. Applicative f => a -> f a pure GError ge foreign import ccall "g_error_free" c_g_error_free :: Ptr GError -> IO () gErrorReport :: GError -> String gErrorReport :: GError -> String gErrorReport (GError GQuark d CInt c String m) = GQuark -> String gQuarkToString GQuark d forall a. [a] -> [a] -> [a] ++ String ": " forall a. [a] -> [a] -> [a] ++ forall a. Show a => a -> String show CInt c forall a. [a] -> [a] -> [a] ++ String ": " forall a. [a] -> [a] -> [a] ++ String m