1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
|
{-# LANGUAGE TupleSections #-}
-- | Contains definitions for generating 'Charset's.
module Network.HTTP.Media.Charset.Gen
( anything,
genCharset,
genConcreteCharset,
genDiffCharset,
genDiffConcreteCharsets,
)
where
import Network.HTTP.Media.Charset.Internal
import Network.HTTP.Media.Gen (genDiffWith, genToken)
import Test.QuickCheck.Gen
-- | The Charset that matches anything.
anything :: Charset
anything = Charset "*"
-- | Generates any kind of Charset.
genCharset :: Gen Charset
genCharset = Charset <$> genToken
-- | Generates an Charset that does not match everything.
genConcreteCharset :: Gen Charset
genConcreteCharset = genDiffWith genCharset anything
-- | Generates a different Charset to the given one.
genDiffCharset :: Charset -> Gen Charset
genDiffCharset = genDiffWith genCharset
-- | Generates two different concrete Charsets.
genDiffConcreteCharsets :: Gen (Charset, Charset)
genDiffConcreteCharsets = do
enc <- genConcreteCharset
(enc,) <$> genDiffWith genConcreteCharset enc
|