This module defines core functions for tracking the consumption of a ByteString, as well as several helper functions for making tracking ByteStrings easier.
- trackProgress :: (Word64 -> Word64 -> IO ()) -> ByteString -> IO ByteString
- trackProgressWithChunkSize :: Word64 -> (Word64 -> Word64 -> IO ()) -> ByteString -> IO ByteString
- trackProgressString :: String -> Maybe Word64 -> (String -> IO ()) -> IO (ByteString -> IO ByteString)
- trackProgressStringWithChunkSize :: String -> Word64 -> Maybe Word64 -> (String -> IO ()) -> IO (ByteString -> IO ByteString)
- bytesToUnittedStr :: Word64 -> String
Given a function, return a bytestring that will call that function when it is partially consumed. The Words provided to the function will be the number of bytes that were just consumed and the total bytes consumed thus far.
trackProgress, except uses fixed-size chunks of the given
size. Thus, for this function, the first number passed to your function
will always be the given size *except* for the last call to the function,
which will be less then or equal to the final size.
Given a format string (described below), track the progress of a function. The argument to the callback will be the string expanded with the given progress information.
Format string items:
- %b is the number of bytes read
- %B is the number of bytes read, formatted into a human-readable string
- %c is the size of the last chunk read
- %C is the size of the last chunk read, formatted human-readably
- %r is the rate in bytes per second
- %R is the rate, formatted human-readably
- %% is the character
If you provide a total size (the maybe argument, in bytes), then you may also use the following items:
- %t is the estimated time to completion in seconds
- %T is the estimated time to completion, formatted as HH:MM:SS
- %p is the percentage complete
the format string
the chunk size
|-> Maybe Word64|
total size (opt.)
|-> (String -> IO ())|
|-> IO (ByteString -> IO ByteString)|
trackProgressString, but use the given chunkSize instead
of the default chunk size.