Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Synopsis
- data Type
- showType :: Bool -> Type -> String
- newtype Signature = Signature [Type]
- signatureTypes :: Signature -> [Type]
- formatSignature :: Signature -> String
- typeCode :: Type -> String
- signature :: MonadThrow m => [Type] -> m Signature
- signature_ :: [Type] -> Signature
- parseSignature :: MonadThrow m => String -> m Signature
- parseSignatureBytes :: MonadThrow m => ByteString -> m Signature
- parseSigFast :: MonadThrow m => ByteString -> m Signature
- parseAtom :: Int -> (Type -> a) -> a -> a
- data SigParseError = SigParseError
- peekWord8AsInt :: ByteString -> Int -> Int
- parseSigFull :: MonadThrow m => ByteString -> m Signature
- extractFromVariant :: IsValue a => Variant -> Maybe a
- typeOf :: forall a. IsValue a => a -> Type
- class IsVariant a where
- toVariant :: a -> Variant
- fromVariant :: Variant -> Maybe a
- class IsVariant a => IsValue a where
- class IsValue a => IsAtom a where
- newtype Variant = Variant Value
- data Value
- data Atom
- showAtom :: Bool -> Atom -> String
- showValue :: Bool -> Value -> String
- showThings :: String -> (a -> String) -> String -> [a] -> String
- vectorToBytes :: Vector Value -> ByteString
- variantType :: Variant -> Type
- valueType :: Value -> Type
- atomType :: Atom -> Type
- bimap :: Ord k' => (k -> v -> (k', v')) -> Map k v -> Map k' v'
- bimapM :: (Monad m, Ord k') => (k -> v -> m (k', v')) -> Map k v -> m (Map k' v')
- varToVal :: IsVariant a => a -> Value
- newtype ObjectPath = ObjectPath String
- pathElements :: ObjectPath -> [String]
- fromElements :: [String] -> ObjectPath
- formatObjectPath :: ObjectPath -> String
- parseObjectPath :: MonadThrow m => String -> m ObjectPath
- objectPath_ :: String -> ObjectPath
- parserObjectPath :: Parser ()
- newtype InterfaceName = InterfaceName String
- formatInterfaceName :: InterfaceName -> String
- parseInterfaceName :: MonadThrow m => String -> m InterfaceName
- interfaceName_ :: String -> InterfaceName
- parserInterfaceName :: Parser ()
- newtype MemberName = MemberName String
- formatMemberName :: MemberName -> String
- parseMemberName :: MonadThrow m => String -> m MemberName
- memberName_ :: String -> MemberName
- parserMemberName :: Parser ()
- newtype ErrorName = ErrorName String
- formatErrorName :: ErrorName -> String
- parseErrorName :: MonadThrow m => String -> m ErrorName
- errorName_ :: String -> ErrorName
- newtype BusName = BusName String
- formatBusName :: BusName -> String
- parseBusName :: MonadThrow m => String -> m BusName
- busName_ :: String -> BusName
- parserBusName :: Parser ()
- newtype Structure = Structure [Value]
- structureItems :: Structure -> [Variant]
- data Array
- = Array Type (Vector Value)
- | ArrayBytes ByteString
- arrayItems :: Array -> [Variant]
- data Dictionary = Dictionary Type Type (Map Atom Value)
- dictionaryItems :: Dictionary -> [(Variant, Variant)]
- newtype Serial = Serial Word32
- serialValue :: Serial -> Word32
- firstSerial :: Serial
- nextSerial :: Serial -> Serial
- skipSepBy1 :: Parser a -> Parser b -> Parser ()
- forceParse :: String -> (String -> Maybe a) -> String -> a
- maybeParseString :: MonadThrow m => Parser a -> String -> m a
Documentation
Instances
A signature is a list of D-Bus types, obeying some basic rules of validity.
The rules of signature validity are complex: see http://dbus.freedesktop.org/doc/dbus-specification.html#message-protocol-signatures for details.
Instances
IsString Signature Source # | |
Defined in DBus.Internal.Types fromString :: String -> Signature # | |
Show Signature Source # | |
IsAtom Signature Source # | |
IsValue Signature Source # | |
IsVariant Signature Source # | |
NFData Signature Source # | |
Defined in DBus.Internal.Types | |
Eq Signature Source # | |
Ord Signature Source # | |
Defined in DBus.Internal.Types |
signatureTypes :: Signature -> [Type] Source #
Get the list of types in a signature. The inverse of signature
.
formatSignature :: Signature -> String Source #
Convert a signature into a signature string. The inverse of
parseSignature
.
signature :: MonadThrow m => [Type] -> m Signature Source #
Convert a list of types into a valid signature.
Throws if the given types are not a valid signature.
signature_ :: [Type] -> Signature Source #
Convert a list of types into a valid signature.
Throws an exception if the given types are not a valid signature.
parseSignature :: MonadThrow m => String -> m Signature Source #
Parse a signature string into a valid signature.
Throws if the given string is not a valid signature.
parseSignatureBytes :: MonadThrow m => ByteString -> m Signature Source #
parseSigFast :: MonadThrow m => ByteString -> m Signature Source #
data SigParseError Source #
Instances
Exception SigParseError Source # | |
Defined in DBus.Internal.Types | |
Show SigParseError Source # | |
Defined in DBus.Internal.Types showsPrec :: Int -> SigParseError -> ShowS # show :: SigParseError -> String # showList :: [SigParseError] -> ShowS # |
peekWord8AsInt :: ByteString -> Int -> Int Source #
parseSigFull :: MonadThrow m => ByteString -> m Signature Source #
class IsVariant a where Source #
Instances
class IsVariant a => IsValue a where Source #
Value types can be used as items in containers, such as lists or dictionaries.
Users may not provide new instances of IsValue
because this could allow
containers to be created with items of heterogenous types.
Instances
class IsValue a => IsAtom a where Source #
Atomic types can be used as keys to dictionaries.
Users may not provide new instances of IsAtom
because this could allow
dictionaries to be created with invalid keys.
Instances
Variants may contain any other built-in D-Bus value. Besides
representing native VARIANT
values, they allow type-safe storage and
inspection of D-Bus collections.
vectorToBytes :: Vector Value -> ByteString Source #
variantType :: Variant -> Type Source #
Every variant is strongly-typed; that is, the type of its contained value is known at all times. This function retrieves that type, so that the correct cast can be used to retrieve the value.
newtype ObjectPath Source #
Object paths are special strings, used to identify a particular object exported from a D-Bus application.
Object paths must begin with a slash, and consist of alphanumeric characters separated by slashes.
See http://dbus.freedesktop.org/doc/dbus-specification.html#message-protocol-marshaling-object-path for details.
Instances
pathElements :: ObjectPath -> [String] Source #
fromElements :: [String] -> ObjectPath Source #
formatObjectPath :: ObjectPath -> String Source #
parseObjectPath :: MonadThrow m => String -> m ObjectPath Source #
objectPath_ :: String -> ObjectPath Source #
parserObjectPath :: Parser () Source #
newtype InterfaceName Source #
Interfaces are used to group a set of methods and signals within an exported object. Interface names consist of alphanumeric characters separated by periods.
See http://dbus.freedesktop.org/doc/dbus-specification.html#message-protocol-names-interface for details.
Instances
parseInterfaceName :: MonadThrow m => String -> m InterfaceName Source #
interfaceName_ :: String -> InterfaceName Source #
parserInterfaceName :: Parser () Source #
newtype MemberName Source #
Member names are used to identify a single method or signal within an interface. Method names consist of alphanumeric characters.
See http://dbus.freedesktop.org/doc/dbus-specification.html#message-protocol-names-member for details.
Instances
formatMemberName :: MemberName -> String Source #
parseMemberName :: MonadThrow m => String -> m MemberName Source #
memberName_ :: String -> MemberName Source #
parserMemberName :: Parser () Source #
Error names are used to identify which type of error was returned from a method call. Error names consist of alphanumeric characters separated by periods.
See http://dbus.freedesktop.org/doc/dbus-specification.html#message-protocol-names-error for details.
formatErrorName :: ErrorName -> String Source #
parseErrorName :: MonadThrow m => String -> m ErrorName Source #
errorName_ :: String -> ErrorName Source #
Bus names are used to identify particular clients on the message bus. A bus name may be either unique or well-known, where unique names start with a colon. Bus names consist of alphanumeric characters separated by periods.
See http://dbus.freedesktop.org/doc/dbus-specification.html#message-protocol-names-bus for details.
formatBusName :: BusName -> String Source #
parseBusName :: MonadThrow m => String -> m BusName Source #
parserBusName :: Parser () Source #
A D-Bus Structure is a container type similar to Haskell tuples, storing
values of any type that is convertable to IsVariant
. A Structure may
contain up to 255 values.
Most users can use the IsVariant
instance for tuples to extract the
values of a structure. This type is for very large structures, which may
be awkward to work with as tuples.
structureItems :: Structure -> [Variant] Source #
A D-Bus Array is a container type similar to Haskell lists, storing zero or more values of a single D-Bus type.
Most users can use the IsVariant
instance for lists or vectors to extract
the values of an array. This type is for advanced use cases, where the user
wants to convert array values to Haskell types that are not instances of
IsValue
.
arrayItems :: Array -> [Variant] Source #
data Dictionary Source #
A D-Bus Dictionary is a container type similar to Haskell maps, storing zero or more associations between keys and values.
Most users can use the IsVariant
instance for maps to extract the values
of a dictionary. This type is for advanced use cases, where the user
wants to convert dictionary items to Haskell types that are not instances
of IsValue
.
Instances
Show Dictionary Source # | |
Defined in DBus.Internal.Types showsPrec :: Int -> Dictionary -> ShowS # show :: Dictionary -> String # showList :: [Dictionary] -> ShowS # | |
IsVariant Dictionary Source # | |
Defined in DBus.Internal.Types toVariant :: Dictionary -> Variant Source # fromVariant :: Variant -> Maybe Dictionary Source # | |
Eq Dictionary Source # | |
Defined in DBus.Internal.Types (==) :: Dictionary -> Dictionary -> Bool # (/=) :: Dictionary -> Dictionary -> Bool # |
dictionaryItems :: Dictionary -> [(Variant, Variant)] Source #
A value used to uniquely identify a particular message within a session. Serials are 32-bit unsigned integers, and eventually wrap.
serialValue :: Serial -> Word32 Source #
firstSerial :: Serial Source #
Get the first serial in the sequence.
nextSerial :: Serial -> Serial Source #
Get the next serial in the sequence. This may wrap around to
firstSerial
.
maybeParseString :: MonadThrow m => Parser a -> String -> m a Source #