ansiform-1.0.0.1: src/Ansiform/Number.hs
-- | Non-negative numbers used for widths, offsets and padding.
module Ansiform.Number
( Number
, Width
, Padding
, Offset
, formNumber
, unNumber
, addNumber
, subtractNumber
, subtractNumberMaybe
) where
--------------------------------------------------------------------------------
import Ansiform.Internal.Number
( Number
, Offset
, Padding
, Width
, formNum
, unn
)
import qualified Ansiform.Internal.Number as Internal
-- | Builds a 'Number', capping negative values at zero.
formNumber :: Int -> Number
formNumber = formNum
-- | Adds two numbers.
addNumber :: Number -> Number -> Number
addNumber = Internal.addNumber
-- | Subtracts the second number from the first, capping at zero.
subtractNumber :: Number -> Number -> Number
subtractNumber = Internal.subtractNumber
-- | Subtracts the second number from the first.
-- Returns 'Nothing' when the result would be negative.
subtractNumberMaybe :: Number -> Number -> Maybe Number
subtractNumberMaybe = Internal.subtractNumberMaybe
-- | Converts a 'Number' back to an 'Int'.
unNumber :: Number -> Int
unNumber = unn