fficxx-0.6: src/FFICXX/Generate/Type/Config.hs
{-# LANGUAGE DeriveGeneric #-}
module FFICXX.Generate.Type.Config where
import Data.Hashable ( Hashable(..) )
import Data.HashMap.Strict ( HashMap )
import GHC.Generics ( Generic )
--
import FFICXX.Runtime.CodeGen.Cxx ( HeaderName(..), Namespace(..) )
data ModuleUnit = MU_TopLevel
| MU_Class String
deriving (Show,Eq,Generic)
instance Hashable ModuleUnit
data ModuleUnitImports =
ModuleUnitImports {
muimports_namespaces :: [Namespace]
, muimports_headers :: [HeaderName]
}
deriving (Show)
emptyModuleUnitImports = ModuleUnitImports [] []
newtype ModuleUnitMap = ModuleUnitMap { unModuleUnitMap :: HashMap ModuleUnit ModuleUnitImports }
modImports ::
String
-> [String]
-> [HeaderName]
-> (ModuleUnit,ModuleUnitImports)
modImports n ns hs =
( MU_Class n
, ModuleUnitImports {
muimports_namespaces = map NS ns
, muimports_headers = hs
}
)