{-# LANGUAGE NoImplicitPrelude #-} module Cmt.Types.Config where import ClassyPrelude (Eq, Maybe (..), Show, Text) import Data.Map.Strict (Map) type Output = (Name, Text) type Outputs = Map Name Text type PreDefinedPart = (Text, Config) type PreDefinedParts = Map Text Config type Name = Text data FormatPart = Named Name | Literal Text deriving (Show, Eq) data PartType = Options [Text] | Line | Lines | Changed deriving (Show, Eq) data Part = Part Name PartType deriving (Show, Eq) data Config = Config [Part] [FormatPart] deriving (Show, Eq) partName :: Part -> Name partName (Part name _) = name formatName :: FormatPart -> Maybe Name formatName (Named name) = Just name formatName _ = Nothing