packages feed

th-printf-0.8: src/Language/Haskell/PrintfArg.hs

{-# LANGUAGE DeriveFunctor #-}

module Language.Haskell.PrintfArg (
  PrintfArg (..),
  adjustment,
  signed,
  spaced,
  prefixed,
) where

import qualified Parser.Types as P

data PrintfArg v = PrintfArg
  { flagSet :: P.FlagSet
  , width :: Maybe Int
  , prec :: Maybe Int
  , lengthSpec :: Maybe P.LengthSpecifier
  , fieldSpec :: Char
  , value :: v
  }
  deriving (Show, Functor)

adjustment :: PrintfArg v -> Maybe P.Adjustment
adjustment = P.adjustment . flagSet

signed, spaced, prefixed :: PrintfArg v -> Bool
signed = P.signed . flagSet
spaced = P.spaced . flagSet
prefixed = P.prefixed . flagSet