packages feed

haskell-gi-0.8: src/GI/GIR/Constant.hs

-- | Parsing of constants in GIR files.
module GI.GIR.Constant
    ( Constant(..)
    , parseConstant
    ) where

import Data.Text (Text)

import GI.Type (Type)
import GI.GIR.Type (parseType)
import GI.GIR.Parser

-- | Info about a constant.
data Constant = Constant {
      constantType        :: Type,
      constantValue       :: Text,
      constantDeprecated  :: Maybe DeprecationInfo
    } deriving (Show)

-- | Parse a "constant" element from the GIR file.
parseConstant :: Parser (Name, Constant)
parseConstant = do
  name <- parseName
  deprecated <- parseDeprecation
  value <- getAttr "value"
  t <- parseType
  return (name, Constant t value deprecated)