ascii 1.1.0.0 → 1.1.1.0
raw patch · 3 files changed
+117/−1 lines, 3 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
+ ASCII: isAlphaNum :: CharSuperset char => char -> Bool
+ ASCII: isDigit :: CharSuperset char => char -> Bool
+ ASCII: isHexDigit :: CharSuperset char => char -> Bool
+ ASCII: isLetter :: CharSuperset char => char -> Bool
+ ASCII: isOctDigit :: CharSuperset char => char -> Bool
+ ASCII: isPunctuation :: CharSuperset char => char -> Bool
+ ASCII: isSpace :: CharSuperset char => char -> Bool
+ ASCII: isSymbol :: CharSuperset char => char -> Bool
Files
- ascii.cabal +1/−1
- changelog.txt +12/−0
- library/ASCII.hs +104/−0
ascii.cabal view
@@ -1,7 +1,7 @@ cabal-version: 2.0 name: ascii-version: 1.1.0.0+version: 1.1.1.0 synopsis: The ASCII character set and encoding category: Data, Text
changelog.txt view
@@ -31,3 +31,15 @@ - Data.Ascii.Blaze - Data.Ascii.ByteString - Data.Ascii.Word8++1.1.1.0 - 2021-09-26++ New functions:+ - isAlphaNum+ - isLetter+ - isDigit+ - isOctDigit+ - isHexDigit+ - isSpace+ - isPunctuation+ - isSymbol
library/ASCII.hs view
@@ -17,6 +17,8 @@ {- * Character classifications -} {- ** Print/control groups -} {- $groups -} Group (..), charGroup, inGroup, {- ** Upper/lower case -} {- $case -} Case (..), letterCase, isCase, toCaseChar, toCaseString,+ {- ** Letters and numbers -} isAlphaNum, isLetter, isDigit, isOctDigit, isHexDigit,+ {- ** Spaces and symbols -} isSpace, isPunctuation, isSymbol, {- * Monomorphic conversions -} {- $monomorphicConversions -} {- ** @Int@ -} {- $intConversions -} charToInt, intToCharMaybe, intToCharUnsafe,@@ -55,6 +57,7 @@ import Control.Monad ( (>=>) ) import Control.Monad.Fail ( MonadFail ) import Data.Bool ( Bool (..) )+import Data.Foldable ( any ) import Data.Function ( (.) ) import Data.Int ( Int ) import Data.Maybe ( Maybe, maybe )@@ -64,6 +67,7 @@ import qualified ASCII.Group import qualified ASCII.Isomorphism import qualified ASCII.Lift+import qualified ASCII.Predicates import qualified ASCII.Superset import qualified Data.ByteString as BS@@ -368,3 +372,103 @@ unicodeStringToByteListMaybe :: Unicode.String -> Maybe [Word8] unicodeStringToByteListMaybe = convertStringMaybe++{- | Returns True for ASCII letters:++- 'ASCII.Char.SmallLetterA' to 'ASCII.Char.SmallLetterZ'+- 'ASCII.Char.CapitalLetterA' to 'ASCII.Char.CapitalLetterZ'++-}++isLetter :: CharSuperset char => char -> Bool+isLetter x = any ASCII.Predicates.isLetter (convertCharMaybe x)++{- | Returns True for the characters from 'ASCII.Char.Digit0' to 'ASCII.Char.Digit9'. -}++isDigit :: CharSuperset char => char -> Bool+isDigit x = any ASCII.Predicates.isDigit (convertCharMaybe x)+++{- | Returns True for the characters from 'ASCII.Char.Digit0' to 'ASCII.Char.Digit7'. -}++isOctDigit :: CharSuperset char => char -> Bool+isOctDigit x = any ASCII.Predicates.isOctDigit (convertCharMaybe x)+++{- | Returns True for characters in any of the following ranges:++- 'ASCII.Char.Digit0' to 'ASCII.Char.Digit9'+- 'ASCII.Char.CapitalLetterA' to 'ASCII.Char.CapitalLetterF'+- 'ASCII.Char.SmallLetterA' to 'ASCII.Char.SmallLetterF'++-}++isHexDigit :: CharSuperset char => char -> Bool+isHexDigit x = any ASCII.Predicates.isHexDigit (convertCharMaybe x)++{- | Returns True for the following characters:++- 'ASCII.Char.Space'+- 'ASCII.Char.HorizontalTab'+- 'ASCII.Char.LineFeed'+- 'ASCII.Char.VerticalTab'+- 'ASCII.Char.FormFeed'+- 'ASCII.Char.CarriageReturn'++-}++isSpace :: CharSuperset char => char -> Bool+isSpace x = any ASCII.Predicates.isSpace (convertCharMaybe x)++{- | Returns True if the character is either an ASCII letter ('isLetter') or an ASCII digit ('isDigit'). -}++isAlphaNum :: CharSuperset char => char -> Bool+isAlphaNum x = any ASCII.Predicates.isAlphaNum (convertCharMaybe x)++{- | Returns True for the following characters:++- 'ASCII.Char.ExclamationMark'+- 'ASCII.Char.QuotationMark'+- 'ASCII.Char.NumberSign'+- 'ASCII.Char.PercentSign'+- 'ASCII.Char.Ampersand'+- 'ASCII.Char.Apostrophe'+- 'ASCII.Char.LeftParenthesis'+- 'ASCII.Char.RightParenthesis'+- 'ASCII.Char.Asterisk'+- 'ASCII.Char.Comma'+- 'ASCII.Char.HyphenMinus'+- 'ASCII.Char.FullStop'+- 'ASCII.Char.Slash'+- 'ASCII.Char.Colon'+- 'ASCII.Char.Semicolon'+- 'ASCII.Char.QuestionMark'+- 'ASCII.Char.AtSign'+- 'ASCII.Char.LeftSquareBracket'+- 'ASCII.Char.Backslash'+- 'ASCII.Char.RightSquareBracket'+- 'ASCII.Char.Underscore'+- 'ASCII.Char.LeftCurlyBracket'+- 'ASCII.Char.RightCurlyBracket'++-}++isPunctuation :: CharSuperset char => char -> Bool+isPunctuation x = any ASCII.Predicates.isPunctuation (convertCharMaybe x)++{- | Returns True for the following characters:++- 'ASCII.Char.DollarSign'+- 'ASCII.Char.PlusSign'+- 'ASCII.Char.LessThanSign'+- 'ASCII.Char.EqualsSign'+- 'ASCII.Char.GreaterThanSign'+- 'ASCII.Char.Caret'+- 'ASCII.Char.GraveAccent'+- 'ASCII.Char.VerticalLine'+- 'ASCII.Char.Tilde'++-}++isSymbol :: CharSuperset char => char -> Bool+isSymbol x = any ASCII.Predicates.isSymbol (convertCharMaybe x)