module Text.Show.Text.Data.Version (
showbVersionPrec
, showbVersionConcrete
) where
import Data.List (intersperse)
import Data.Monoid.Compat ((<>))
import Data.Text.Lazy.Builder (Builder, fromString, singleton)
import Data.Version (Version(..))
import Prelude ()
import Prelude.Compat
import Text.Show.Text.Classes (showb, showbPrec)
import Text.Show.Text.Data.Char ()
import Text.Show.Text.Data.Integral ()
import Text.Show.Text.Data.List ()
import Text.Show.Text.TH.Internal (deriveShow)
showbVersionPrec :: Int -> Version -> Builder
showbVersionPrec = showbPrec
showbVersionConcrete :: Version -> Builder
showbVersionConcrete (Version branch tags)
= mconcat (intersperse (singleton '.') $ map showb branch) <>
mconcat (map ((singleton '-' <>) . fromString) tags)
$(deriveShow ''Version)