{-# LANGUAGE FlexibleInstances #-} module Hledger.Flow.Types where import qualified Turtle (ExitCode, NominalDiffTime, Shell, Line) import qualified Data.Text as T import Hledger.Flow.PathHelpers type BaseDir = AbsDir type RunDir = RelDir data LogMessage = StdOut T.Text | StdErr T.Text | Terminate deriving (Int -> LogMessage -> ShowS [LogMessage] -> ShowS LogMessage -> String (Int -> LogMessage -> ShowS) -> (LogMessage -> String) -> ([LogMessage] -> ShowS) -> Show LogMessage forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [LogMessage] -> ShowS $cshowList :: [LogMessage] -> ShowS show :: LogMessage -> String $cshow :: LogMessage -> String showsPrec :: Int -> LogMessage -> ShowS $cshowsPrec :: Int -> LogMessage -> ShowS Show) type FullOutput = (Turtle.ExitCode, T.Text, T.Text) type FullTimedOutput = (FullOutput, Turtle.NominalDiffTime) type ProcFun = T.Text -> [T.Text] -> Turtle.Shell Turtle.Line -> IO FullOutput type ProcInput = (T.Text, [T.Text], Turtle.Shell Turtle.Line) data HledgerInfo = HledgerInfo { HledgerInfo -> AbsFile hlPath :: AbsFile , HledgerInfo -> Text hlVersion :: T.Text } deriving (Int -> HledgerInfo -> ShowS [HledgerInfo] -> ShowS HledgerInfo -> String (Int -> HledgerInfo -> ShowS) -> (HledgerInfo -> String) -> ([HledgerInfo] -> ShowS) -> Show HledgerInfo forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [HledgerInfo] -> ShowS $cshowList :: [HledgerInfo] -> ShowS show :: HledgerInfo -> String $cshow :: HledgerInfo -> String showsPrec :: Int -> HledgerInfo -> ShowS $cshowsPrec :: Int -> HledgerInfo -> ShowS Show) class HasVerbosity a where verbose :: a -> Bool class HasBaseDir a where baseDir :: a -> BaseDir class HasRunDir a where importRunDir :: a -> RunDir class HasSequential a where sequential :: a -> Bool class HasBatchSize a where batchSize :: a -> Int