module Data.GI.GIR.Signal ( Signal(..) , parseSignal ) where import Data.Text (Text) import Data.GI.GIR.Callable (Callable(..), parseCallable) import Data.GI.GIR.Parser data Signal = Signal { Signal -> ParseError sigName :: Text, Signal -> Callable sigCallable :: Callable, Signal -> Maybe DeprecationInfo sigDeprecated :: Maybe DeprecationInfo, Signal -> Bool sigDetailed :: Bool, Signal -> Documentation sigDoc :: Documentation } deriving (Int -> Signal -> ShowS [Signal] -> ShowS Signal -> String (Int -> Signal -> ShowS) -> (Signal -> String) -> ([Signal] -> ShowS) -> Show Signal forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a $cshowsPrec :: Int -> Signal -> ShowS showsPrec :: Int -> Signal -> ShowS $cshow :: Signal -> String show :: Signal -> String $cshowList :: [Signal] -> ShowS showList :: [Signal] -> ShowS Show, Signal -> Signal -> Bool (Signal -> Signal -> Bool) -> (Signal -> Signal -> Bool) -> Eq Signal forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a $c== :: Signal -> Signal -> Bool == :: Signal -> Signal -> Bool $c/= :: Signal -> Signal -> Bool /= :: Signal -> Signal -> Bool Eq) parseSignal :: Parser Signal parseSignal :: Parser Signal parseSignal = do n <- Name -> Parser ParseError getAttr Name "name" detailed <- optionalAttr "detailed" False parseBool deprecated <- parseDeprecation callable <- parseCallable doc <- parseDocumentation return $ Signal { sigName = n , sigCallable = callable , sigDeprecated = deprecated , sigDetailed = detailed , sigDoc = doc }