Skip to content

Commit fd7ca54

Browse files
committed
Add some additional common character generators
1 parent 3d400a4 commit fd7ca54

File tree

1 file changed

+14
-1
lines changed

1 file changed

+14
-1
lines changed

src/Data/Char/Gen.purs

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,9 @@ module Data.Char.Gen where
22

33
import Prelude
44

5-
import Control.Monad.Gen (class MonadGen, chooseInt)
5+
import Control.Monad.Gen (class MonadGen, chooseInt, oneOf)
66
import Data.Char as C
7+
import Data.NonEmpty ((:|))
78

89
-- | Generates a character of the Unicode basic multilingual plain.
910
genUnicodeChar :: forall m. MonadGen m => m Char
@@ -20,3 +21,15 @@ genAsciiChar' = C.fromCharCode <$> chooseInt 0 127
2021
-- | Generates a character that is a numeric digit.
2122
genDigitChar :: forall m. MonadGen m => m Char
2223
genDigitChar = C.fromCharCode <$> chooseInt 48 57
24+
25+
-- | Generates a character from the basic latin alphabet.
26+
genAlpha :: forall m. MonadGen m => m Char
27+
genAlpha = oneOf (genAlphaLowercase :| [genAlphaUppercase])
28+
29+
-- | Generates a lowercase character from the basic latin alphabet.
30+
genAlphaLowercase :: forall m. MonadGen m => m Char
31+
genAlphaLowercase = C.fromCharCode <$> chooseInt 97 122
32+
33+
-- | Generates an uppercase character from the basic latin alphabet.
34+
genAlphaUppercase :: forall m. MonadGen m => m Char
35+
genAlphaUppercase = C.fromCharCode <$> chooseInt 65 90

0 commit comments

Comments
 (0)