{-# LANGUAGE FlexibleInstances #-} module Hledger.Flow.Types where import qualified Data.Text as T import Hledger.Flow.PathHelpers import qualified Turtle (ExitCode, Line, NominalDiffTime, Shell) 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 $cshowsPrec :: Int -> LogMessage -> ShowS showsPrec :: Int -> LogMessage -> ShowS $cshow :: LogMessage -> String show :: LogMessage -> String $cshowList :: [LogMessage] -> ShowS showList :: [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 $cshowsPrec :: Int -> HledgerInfo -> ShowS showsPrec :: Int -> HledgerInfo -> ShowS $cshow :: HledgerInfo -> String show :: HledgerInfo -> String $cshowList :: [HledgerInfo] -> ShowS showList :: [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 class HasPrettyReports a where prettyReports :: a -> Bool