haskell-gi-0.26.17: lib/Data/GI/GIR/Function.hs
module Data.GI.GIR.Function
( Function(..)
, parseFunction
) where
import Data.Text (Text)
import Data.GI.GIR.Callable (Callable(..), parseCallable)
import Data.GI.GIR.Parser
data Function = Function {
-- | The symbol in the dynlib that this function refers to.
fnSymbol :: Text
, fnMovedTo :: Maybe Text
, fnCallable :: Callable
} deriving Show
parseFunction :: Parser (Name, Function)
parseFunction = do
name <- parseName
shadows <- queryAttr "shadows"
let exposedName = case shadows of
Just n -> name {name = n}
Nothing -> name
callable <- parseCallable
symbol <- getAttrWithNamespace CGIRNS "identifier"
movedTo <- queryAttr "moved-to"
return $ (exposedName,
Function {
fnSymbol = symbol
, fnCallable = callable
, fnMovedTo = movedTo
})