ascii-progress-0.3.3.0: A simple progress bar for the console.
Safe HaskellNone
LanguageHaskell2010

System.Console.AsciiProgress

Synopsis

Documentation

data Options Source #

The progress bar's options.

Constructors

Options 

Fields

  • pgFormat :: String

    A format string for the progress bar. Currently the following format strings are supported: - ":eta" (ETA displayed in seconds) - ":current" (current tick) - ":total" (total number of ticks) - ":percent" (percentage completed) - ":elapsed" (elapsed time in seconds) - ":bar" (the actual progress bar)

  • pgCompletedChar :: Char

    Character to be used on the completed part of the bar

  • pgPendingChar :: Char

    Character to be used on the pending part of the bar

  • pgTotal :: Integer

    Total amount of ticks expected

  • pgWidth :: Int

    The progress bar's width

  • pgOnCompletion :: Maybe String

    What to output when the progress bar is done. The same format placeholders used in pgFormat may be used.

  • pgGetProgressStr :: Options -> Stats -> String
     

Instances

Instances details
Default Options Source # 
Instance details

Defined in System.Console.AsciiProgress.Internal

Methods

def :: Options Source #

data Stats Source #

Represents a point in time for the progress bar.

isComplete :: ProgressBar -> IO Bool Source #

Returns if the progress bar rendering thread has exited (it has done enough ticks)

newProgressBar :: Options -> IO ProgressBar Source #

Creates a new progress bar with the given Options. Multiple progress bars may be created. This package depends on `concurrent-output`, so it's -- necessary that progress-bar usage is wrapped with a call to displayConsoleRegions.

import           Control.Concurrent           (threadDelay)
import           Control.Monad                (unless)
import           System.Console.AsciiProgress

main :: IO ()
main = displayConsoleRegions $ do
   pg <- newProgressBar def { pgWidth = 100
                            , pgOnCompletion = Just "Done :percent after :elapsed seconds"
                            }
   loop pg
 where
   loop pg = do
       b <- isComplete pg
       unless b $ do
           threadDelay $ 200 * 1000
           tick pg
           loop pg

complete :: ProgressBar -> IO () Source #

Forces a ProgressBar to finish

tick :: ProgressBar -> IO () Source #

Tick the progress bar

tickN :: ProgressBar -> Int -> IO () Source #

Tick the progress bar N times

tickNI :: ProgressBar -> Integer -> IO () Source #

Tick the progress bar N times

getProgressStrIO :: ProgressBar -> IO String Source #

Like getProgressStr but works on the ProgressBar object and uses the IO monad.

getProgressStats :: ProgressBar -> IO Stats Source #

Gets the progress bar current Stats object

getProgressStr :: Options -> Stats -> String Source #

Gets the string to be printed given the options object and a certain stats object representing the rendering moment.

class Default a where Source #

A class for types with a default value.

Minimal complete definition

Nothing

Methods

def :: a Source #

The default value for this type.

Instances

Instances details
Default Double 
Instance details

Defined in Data.Default.Class

Methods

def :: Double Source #

Default Float 
Instance details

Defined in Data.Default.Class

Methods

def :: Float Source #

Default Int 
Instance details

Defined in Data.Default.Class

Methods

def :: Int Source #

Default Int8 
Instance details

Defined in Data.Default.Class

Methods

def :: Int8 Source #

Default Int16 
Instance details

Defined in Data.Default.Class

Methods

def :: Int16 Source #

Default Int32 
Instance details

Defined in Data.Default.Class

Methods

def :: Int32 Source #

Default Int64 
Instance details

Defined in Data.Default.Class

Methods

def :: Int64 Source #

Default Integer 
Instance details

Defined in Data.Default.Class

Methods

def :: Integer Source #

Default Ordering 
Instance details

Defined in Data.Default.Class

Methods

def :: Ordering Source #

Default Word 
Instance details

Defined in Data.Default.Class

Methods

def :: Word Source #

Default Word8 
Instance details

Defined in Data.Default.Class

Methods

def :: Word8 Source #

Default Word16 
Instance details

Defined in Data.Default.Class

Methods

def :: Word16 Source #

Default Word32 
Instance details

Defined in Data.Default.Class

Methods

def :: Word32 Source #

Default Word64 
Instance details

Defined in Data.Default.Class

Methods

def :: Word64 Source #

Default () 
Instance details

Defined in Data.Default.Class

Methods

def :: () Source #

Default All 
Instance details

Defined in Data.Default.Class

Methods

def :: All Source #

Default Any 
Instance details

Defined in Data.Default.Class

Methods

def :: Any Source #

Default CShort 
Instance details

Defined in Data.Default.Class

Methods

def :: CShort Source #

Default CUShort 
Instance details

Defined in Data.Default.Class

Methods

def :: CUShort Source #

Default CInt 
Instance details

Defined in Data.Default.Class

Methods

def :: CInt Source #

Default CUInt 
Instance details

Defined in Data.Default.Class

Methods

def :: CUInt Source #

Default CLong 
Instance details

Defined in Data.Default.Class

Methods

def :: CLong Source #

Default CULong 
Instance details

Defined in Data.Default.Class

Methods

def :: CULong Source #

Default CLLong 
Instance details

Defined in Data.Default.Class

Methods

def :: CLLong Source #

Default CULLong 
Instance details

Defined in Data.Default.Class

Methods

def :: CULLong Source #

Default CFloat 
Instance details

Defined in Data.Default.Class

Methods

def :: CFloat Source #

Default CDouble 
Instance details

Defined in Data.Default.Class

Methods

def :: CDouble Source #

Default CPtrdiff 
Instance details

Defined in Data.Default.Class

Methods

def :: CPtrdiff Source #

Default CSize 
Instance details

Defined in Data.Default.Class

Methods

def :: CSize Source #

Default CSigAtomic 
Instance details

Defined in Data.Default.Class

Default CClock 
Instance details

Defined in Data.Default.Class

Methods

def :: CClock Source #

Default CTime 
Instance details

Defined in Data.Default.Class

Methods

def :: CTime Source #

Default CUSeconds 
Instance details

Defined in Data.Default.Class

Methods

def :: CUSeconds Source #

Default CSUSeconds 
Instance details

Defined in Data.Default.Class

Default CIntPtr 
Instance details

Defined in Data.Default.Class

Methods

def :: CIntPtr Source #

Default CUIntPtr 
Instance details

Defined in Data.Default.Class

Methods

def :: CUIntPtr Source #

Default CIntMax 
Instance details

Defined in Data.Default.Class

Methods

def :: CIntMax Source #

Default CUIntMax 
Instance details

Defined in Data.Default.Class

Methods

def :: CUIntMax Source #

Default Options Source # 
Instance details

Defined in System.Console.AsciiProgress.Internal

Methods

def :: Options Source #

Default [a] 
Instance details

Defined in Data.Default.Class

Methods

def :: [a] Source #

Default (Maybe a) 
Instance details

Defined in Data.Default.Class

Methods

def :: Maybe a Source #

Integral a => Default (Ratio a) 
Instance details

Defined in Data.Default.Class

Methods

def :: Ratio a Source #

Default a => Default (IO a) 
Instance details

Defined in Data.Default.Class

Methods

def :: IO a Source #

(Default a, RealFloat a) => Default (Complex a) 
Instance details

Defined in Data.Default.Class

Methods

def :: Complex a Source #

Default (First a) 
Instance details

Defined in Data.Default.Class

Methods

def :: First a Source #

Default (Last a) 
Instance details

Defined in Data.Default.Class

Methods

def :: Last a Source #

Default a => Default (Dual a) 
Instance details

Defined in Data.Default.Class

Methods

def :: Dual a Source #

Default (Endo a) 
Instance details

Defined in Data.Default.Class

Methods

def :: Endo a Source #

Num a => Default (Sum a) 
Instance details

Defined in Data.Default.Class

Methods

def :: Sum a Source #

Num a => Default (Product a) 
Instance details

Defined in Data.Default.Class

Methods

def :: Product a Source #

Default r => Default (e -> r) 
Instance details

Defined in Data.Default.Class

Methods

def :: e -> r Source #

(Default a, Default b) => Default (a, b) 
Instance details

Defined in Data.Default.Class

Methods

def :: (a, b) Source #

(Default a, Default b, Default c) => Default (a, b, c) 
Instance details

Defined in Data.Default.Class

Methods

def :: (a, b, c) Source #

(Default a, Default b, Default c, Default d) => Default (a, b, c, d) 
Instance details

Defined in Data.Default.Class

Methods

def :: (a, b, c, d) Source #

(Default a, Default b, Default c, Default d, Default e) => Default (a, b, c, d, e) 
Instance details

Defined in Data.Default.Class

Methods

def :: (a, b, c, d, e) Source #

(Default a, Default b, Default c, Default d, Default e, Default f) => Default (a, b, c, d, e, f) 
Instance details

Defined in Data.Default.Class

Methods

def :: (a, b, c, d, e, f) Source #

(Default a, Default b, Default c, Default d, Default e, Default f, Default g) => Default (a, b, c, d, e, f, g) 
Instance details

Defined in Data.Default.Class

Methods

def :: (a, b, c, d, e, f, g) Source #