module Language.Fiddle.Ast.FileInterface where -- Definitions for file interfaces. These interfaces contain an abstract -- representation of the symbols and information exported by a fiddle file. -- These interfaces are also serializable, and when compiling a fiddle file, all -- the import statements should supply an fdi (fiddle interface) file to speed -- up subsequent compilations. -- import Data.Text -- -- data ObjectType = ObjectType -- { objectTypeSize :: Word32 -- } -- -- data Metatype -- = Object -- { objectLocation :: Word64, -- objectType :: Text -- } -- | Type -- { typeSizeBytes :: Word32 -- } -- -- data Element a = Element -- { elementFullyQualifiedSymbol :: Text, -- elementDocumentation :: Maybe Text, -- elementMetatype :: Metatype, -- elementAnnotation :: a -- } -- -- data FileInterface a = FiddleInterface -- { exportedElements :: [Element a] -- }