headroom-0.4.0.0: src/Headroom/Header/Types.hs
{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE StrictData #-}
{-|
Module : Headroom.Header.Types
Description : Data types for "Headroom.Header"
Copyright : (c) 2019-2021 Vaclav Svejcar
License : BSD-3-Clause
Maintainer : vaclav.svejcar@gmail.com
Stability : experimental
Portability : POSIX
This module contains data types for "Headroom.Header" module.
-}
module Headroom.Header.Types
( -- * Data Types
HeaderInfo(..)
, HeaderTemplate(..)
)
where
import Headroom.Configuration.Types ( CtHeaderConfig )
import Headroom.FileSupport.TemplateData ( TemplateData )
import Headroom.FileType.Types ( FileType )
import Headroom.Meta ( TemplateType )
import Headroom.Variables.Types ( Variables )
import RIO
-- | Info extracted about the source code file header.
data HeaderInfo = HeaderInfo
{ hiFileType :: FileType
-- ^ type of the file
, hiHeaderConfig :: CtHeaderConfig
-- ^ configuration for license header
, hiHeaderPos :: Maybe (Int, Int)
-- ^ position of existing license header
, hiVariables :: Variables
-- ^ additional extracted variables
}
deriving (Eq, Show)
-- | Represents info about concrete header template.
data HeaderTemplate = HeaderTemplate
{ htConfig :: CtHeaderConfig
-- ^ header configuration
, htTemplateData :: TemplateData
-- ^ extra template data extracted by the correcponding file type support
, htFileType :: FileType
-- ^ type of the file this template is for
, htTemplate :: TemplateType
-- ^ parsed template
}
deriving (Eq, Show)