module DBus.Error where
import Control.Exception as Ex
import Data.Text (Text)
import Data.Typeable (Typeable)
import DBus.Types
data DBusError = CouldNotConnect String
| DBusParseError String
| MarshalError String
deriving (Show, Eq, Typeable)
instance Ex.Exception DBusError
errorFailed :: Text -> MsgError
errorFailed msg = (MsgError "org.freedesktop.DBus.Error.Failed"
(Just msg)
[])
noSuchInterface :: MsgError
noSuchInterface = errorFailed "No such interface"
noSuchProperty :: MsgError
noSuchProperty = errorFailed "No such property"
propertyNotReadable :: MsgError
propertyNotReadable = errorFailed "Property is not readable"
propertyNotWriteable :: MsgError
propertyNotWriteable = errorFailed "Property is not writeable"
argTypeMismatch :: MsgError
argTypeMismatch = errorFailed "Argument type mismatch"