packages feed

base32string 0.9.0 → 0.9.1

raw patch · 3 files changed

+14/−1 lines, 3 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

+ Data.Base32String: b32String' :: ByteString -> ByteString -> Base32String
+ Data.Base32String.Default: b32String' :: ByteString -> Base32String

Files

base32string.cabal view
@@ -1,6 +1,6 @@ name: base32string
 category: Data
-version: 0.9.0
+version: 0.9.1
 license: MIT
 license-file: LICENSE
 copyright: (c) 2015 Leon Mergen
src/Data/Base32String.hs view
@@ -1,5 +1,6 @@ module Data.Base32String ( Base32String
                          , b32String
+                         , b32String'
                          , fromBinary
                          , toBinary
                          , fromBytes
@@ -45,6 +46,14 @@   if   BS.all (isValidBase32 table) bs
   then Base32String bs
   else error ("Not a valid base32 string: " ++ show bs)
+
+-- | Case insensitive variant of 'b32String', which converts all characters
+--   to upper case.
+b32String' :: BS.ByteString -- ^ Our Base32 mapping table
+           -> BS.ByteString -- ^ Our Base32 string
+           -> Base32String
+b32String' table bs =
+  b32String table (TE.encodeUtf8 . T.toUpper . TE.decodeUtf8 $ bs)
 
 -- | Converts a 'B.Binary' to a 'Base32String' value
 fromBinary :: B.Binary a
src/Data/Base32String/Default.hs view
@@ -1,5 +1,6 @@ module Data.Base32String.Default ( B32.Base32String
                                  , b32String
+                                 , b32String'
                                  , fromBinary
                                  , toBinary
                                  , fromBytes
@@ -30,6 +31,9 @@ 
 b32String :: BS.ByteString -> B32.Base32String
 b32String = B32.b32String table
+
+b32String' :: BS.ByteString -> B32.Base32String
+b32String' = B32.b32String' table
 
 fromBinary :: B.Binary a => a -> B32.Base32String
 fromBinary = B32.fromBinary table