1{-# LANGUAGE RankNTypes #-} 2module Test.Hspec.Core.Format ( 3 Format(..) 4, Progress 5, Path 6, Location(..) 7, Seconds(..) 8, Item(..) 9, Result(..) 10, FailureReason(..) 11) where 12 13import Test.Hspec.Core.Spec (Progress, Location(..)) 14import Test.Hspec.Core.Example (FailureReason(..)) 15import Test.Hspec.Core.Util (Path) 16import Test.Hspec.Core.Clock 17 18data Item = Item { 19 itemLocation :: Maybe Location 20, itemDuration :: Seconds 21, itemInfo :: String 22, itemResult :: Result 23} deriving Show 24 25data Result = 26 Success 27 | Pending (Maybe String) 28 | Failure FailureReason 29 deriving Show 30 31data Format m = Format { 32 formatRun :: forall a. m a -> IO a 33, formatGroupStarted :: Path -> m () 34, formatGroupDone :: Path -> m () 35, formatProgress :: Path -> Progress -> m () 36, formatItemStarted :: Path -> m () 37, formatItemDone :: Path -> Item -> m () 38} 39