ascii 1.0.0.2 → 1.0.1.0
raw patch · 4 files changed
+77/−12 lines, 4 filesdep ~ascii-casedep ~ascii-chardep ~ascii-groupPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: ascii-case, ascii-char, ascii-group, ascii-predicates, ascii-superset, ascii-th, bytestring, data-ascii, text
API changes (from Hackage documentation)
+ ASCII: byteListToUnicodeStringMaybe :: [Word8] -> Maybe String
+ ASCII: byteStringToUnicodeStringMaybe :: ByteString -> Maybe String
+ ASCII: convertCharMaybe :: (CharSuperset char1, CharSuperset char2) => char1 -> Maybe char2
+ ASCII: convertCharOrFail :: (CharSuperset char1, CharSuperset char2, MonadFail context) => char1 -> context char2
+ ASCII: convertStringMaybe :: (StringSuperset string1, StringSuperset string2) => string1 -> Maybe string2
+ ASCII: convertStringOrFail :: (StringSuperset string1, StringSuperset string2, MonadFail context) => string1 -> context string2
+ ASCII: unicodeStringToByteListMaybe :: String -> Maybe [Word8]
+ ASCII: unicodeStringToByteStringMaybe :: String -> Maybe ByteString
Files
- ASCII.hs +53/−1
- ascii.cabal +10/−10
- changelog.txt +13/−0
- license.txt +1/−1
ASCII.hs view
@@ -26,9 +26,16 @@ {- ** @Text@ -} {- $textConversions -} charListToText, textToCharListMaybe, textToCharListUnsafe, {- ** @ByteString@ -} {- $byteStringConversions -} charListToByteString, byteStringToCharListMaybe, byteStringToCharListUnsafe, + {- * Monomorphic conversions between ASCII supersets -} {- $monoSupersetConversions -}+ {- ** @ByteString@ / @String@ -} byteStringToUnicodeStringMaybe, unicodeStringToByteStringMaybe,+ {- ** @[Word8]@ / @String@ -} byteListToUnicodeStringMaybe, unicodeStringToByteListMaybe,+ {- * Refinement type -} {- $refinement -} {- ** @ASCII@ -} ASCII, - {- * Polymorphic conversions -} {- ** Validate -} validateChar, validateString, {- ** Lift -} {- $lift -} lift,+ {- * Polymorphic conversions -}+ {- ** Validate -} validateChar, validateString,+ {- ** Lift -} {- $lift -} lift,+ {- ** Convert -} {- $supersetConversions -} convertCharMaybe, convertCharOrFail, convertStringMaybe, convertStringOrFail, {- * Classes -} {- ** @CharSuperset@ -} CharSuperset, {- ** @StringSuperset@ -} StringSuperset, {- ** @Lift@ -} Lift, {- ** @CharIso@ -} CharIso, {- ** @StringIso@ -} StringIso, @@ -46,6 +53,7 @@ import ASCII.Superset ( CharSuperset, StringSuperset ) import Control.Monad ( (>=>) )+import Control.Monad.Fail ( MonadFail ) import Data.Bool ( Bool (..) ) import Data.Function ( (.) ) import Data.Int ( Int )@@ -325,3 +333,47 @@ lift :: Lift ascii superset => ascii -> superset lift = ASCII.Lift.lift++{- $supersetConversions++These functions all convert from one ASCII-superset type to another, failing if any of the characters in the input is outside the ASCII character set.++-}++convertCharMaybe :: (CharSuperset char1, CharSuperset char2) => char1 -> Maybe char2+convertCharMaybe = ASCII.Superset.convertCharMaybe++convertCharOrFail :: (CharSuperset char1, CharSuperset char2, MonadFail context) => char1 -> context char2+convertCharOrFail = ASCII.Superset.convertCharOrFail++convertStringMaybe :: (StringSuperset string1, StringSuperset string2) => string1 -> Maybe string2+convertStringMaybe = ASCII.Superset.convertStringMaybe++convertStringOrFail :: (StringSuperset string1, StringSuperset string2, MonadFail context) => string1 -> context string2+convertStringOrFail = ASCII.Superset.convertStringOrFail++{- $monoSupersetConversions++These functions are all specializations of 'convertStringMaybe'. They convert a string from one ASCII-superset type to another.++>>> ASCII.byteListToUnicodeStringMaybe [0x48, 0x54, 0x54, 0x50]+Just "HTTP"++If any of the characters in the input is outside the ASCII character set, the result is 'Nothing'.++>>> ASCII.byteListToUnicodeStringMaybe [0x48, 0x54, 0x54, 0x80]+Nothing++-}++byteStringToUnicodeStringMaybe :: BS.ByteString -> Maybe Unicode.String+byteStringToUnicodeStringMaybe = convertStringMaybe++unicodeStringToByteStringMaybe :: Unicode.String -> Maybe BS.ByteString+unicodeStringToByteStringMaybe = convertStringMaybe++byteListToUnicodeStringMaybe :: [Word8] -> Maybe Unicode.String+byteListToUnicodeStringMaybe = convertStringMaybe++unicodeStringToByteListMaybe :: Unicode.String -> Maybe [Word8]+unicodeStringToByteListMaybe = convertStringMaybe
ascii.cabal view
@@ -1,7 +1,7 @@ cabal-version: 2.0 name: ascii-version: 1.0.0.2+version: 1.0.1.0 synopsis: The ASCII character set and encoding category: Data, Text @@ -32,36 +32,36 @@ ghc-options: -Wall build-depends: base >= 4.11 && < 4.15- build-depends: bytestring >= 0.10 && < 0.11- build-depends: text >= 1.2 && < 1.3+ build-depends: bytestring ^>= 0.10+ build-depends: text ^>= 1.2 exposed-modules: ASCII - build-depends: ascii-char >= 1.0 && < 1.1+ build-depends: ascii-char ^>= 1.0 reexported-modules: ASCII.Char - build-depends: ascii-group >= 1.0 && < 1.1+ build-depends: ascii-group ^>= 1.0 reexported-modules: ASCII.Group - build-depends: ascii-case >= 1.0 && < 1.1+ build-depends: ascii-case ^>= 1.0 reexported-modules: ASCII.Case - build-depends: ascii-predicates >= 1.0 && < 1.1+ build-depends: ascii-predicates ^>= 1.0 reexported-modules: ASCII.Predicates reexported-modules: ASCII.Lists reexported-modules: ASCII.ListsAndPredicates - build-depends: ascii-superset >= 1.0 && < 1.1+ build-depends: ascii-superset ^>= 1.0.1 reexported-modules: ASCII.Superset reexported-modules: ASCII.Isomorphism reexported-modules: ASCII.Refinement reexported-modules: ASCII.Lift - build-depends: ascii-th >= 1.0 && < 1.1+ build-depends: ascii-th ^>= 1.0 reexported-modules: ASCII.TemplateHaskell reexported-modules: ASCII.QuasiQuoters - build-depends: data-ascii >= 1.0 && < 1.1+ build-depends: data-ascii ^>= 1.0 reexported-modules: Data.Ascii reexported-modules: Data.Ascii.Blaze reexported-modules: Data.Ascii.ByteString
changelog.txt view
@@ -1,2 +1,15 @@ 1.0.0.0 - 2020-05-05 - Initial release+ 1.0.0.2 - 2020-05-18 - Support GHC 8.10++1.0.1.0 - 2021-01-27++ New functions:+ - byteStringToUnicodeStringMaybe+ - unicodeStringToByteStringMaybe+ - byteListToUnicodeStringMaybe+ - unicodeStringToByteListMaybe+ - convertCharMaybe+ - convertCharOrFail+ - convertStringMaybe+ - convertStringOrFail
license.txt view
@@ -1,4 +1,4 @@-Copyright 2020 Typeclass Consulting LLC+Copyright 2021 Mission Valley Software LLC Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.