{-# LANGUAGE DataKinds #-} module Clang.Coformat.Formatter where import qualified Data.ByteString.Char8 as BS import qualified Data.Text as T import Control.Monad.IO.Class import Clang.Format.Descr data FormatterInfo = FormatterInfo { executableName :: String , knownOptions :: [ConfigItemT 'Supported] , baseStyles :: [T.Text] } deriving (Show) class Formatter fmt where formatterInfo :: proxy fmt -> FormatterInfo formatFile :: MonadIO m => proxy fmt -> T.Text -> [ConfigItemT 'Value] -> FilePath -> m BS.ByteString