| Copyright | 2008 David Roundy | 
|---|---|
| License | GPL | 
| Maintainer | darcs-devel@darcs.net | 
| Stability | experimental | 
| Portability | portable | 
| Safe Haskell | None | 
| Language | Haskell2010 | 
Darcs.Util.Progress
Description
Utility functions for tracking progress of long-running actions.
- beginTedious :: String -> IO ()
- endTedious :: String -> IO ()
- tediousSize :: String -> Int -> IO ()
- debugMessage :: String -> IO ()
- debugFail :: String -> IO a
- withoutProgress :: IO a -> IO a
- progress :: String -> a -> a
- progressKeepLatest :: String -> a -> a
- finishedOne :: String -> String -> a -> a
- finishedOneIO :: String -> String -> IO ()
- progressList :: String -> [a] -> [a]
- minlist :: Int
- setProgressMode :: Bool -> IO ()
Documentation
beginTedious :: String -> IO () Source
beginTedious k starts a tedious process and registers it in
 _progressData with the key k. A tedious process is one for which we want
 a progress indicator.
Wouldn't it be safer if it had type String -> IO ProgressDataKey, so that we can ensure there is no collision? What happens if you call beginTedious twice with the same string, without calling endTedious in the meantime?
endTedious :: String -> IO () Source
endTedious k unregisters the tedious process with key k, printing
 Done if such a tedious process exists.
tediousSize :: String -> Int -> IO () Source
debugMessage :: String -> IO () Source
withoutProgress :: IO a -> IO a Source
progressKeepLatest :: String -> a -> a Source
finishedOne :: String -> String -> a -> a Source
finishedOneIO :: String -> String -> IO () Source
progressList :: String -> [a] -> [a] Source
setProgressMode :: Bool -> IO () Source