summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/Data/ByteString/Base32/Hex.hs9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/Data/ByteString/Base32/Hex.hs b/src/Data/ByteString/Base32/Hex.hs
index 762d471..f68ad31 100644
--- a/src/Data/ByteString/Base32/Hex.hs
+++ b/src/Data/ByteString/Base32/Hex.hs
@@ -14,7 +14,8 @@
14-- 14--
15{-# LANGUAGE BangPatterns #-} 15{-# LANGUAGE BangPatterns #-}
16module Data.ByteString.Base32.Hex 16module Data.ByteString.Base32.Hex
17 ( encode 17 ( Base32Hex
18 , encode
18 , decode 19 , decode
19 , decodeLenient 20 , decodeLenient
20 ) where 21 ) where
@@ -24,6 +25,8 @@ import Data.ByteString.Base32.Internal
24import Data.List as L 25import Data.List as L
25 26
26 27
28type Base32Hex = ByteString
29
27encW5 :: Word5 -> Word8 30encW5 :: Word5 -> Word8
28encW5 !x 31encW5 !x
29 | x <= 9 = 48 {- c2w '0' -} + x 32 | x <= 9 = 48 {- c2w '0' -} + x
@@ -33,7 +36,7 @@ encTable :: EncTable
33encTable = BS.pack $ L.map encW5 [0..31] 36encTable = BS.pack $ L.map encW5 [0..31]
34 37
35-- | Encode a bytestring into base32hex form. 38-- | Encode a bytestring into base32hex form.
36encode :: ByteString -> ByteString 39encode :: ByteString -> Base32Hex
37encode = unpack5 encTable 40encode = unpack5 encTable
38 41
39decW5 :: Word8 -> Word5 42decW5 :: Word8 -> Word5
@@ -50,7 +53,7 @@ decTable :: DecTable
50decTable = BS.pack $ L.map decW5 [minBound .. maxBound] 53decTable = BS.pack $ L.map decW5 [minBound .. maxBound]
51 54
52-- | Decode a base32hex encoded bytestring. 55-- | Decode a base32hex encoded bytestring.
53decode :: ByteString -> ByteString 56decode :: Base32Hex -> ByteString
54decode = pack5 decTable 57decode = pack5 decTable
55 58
56decodeLenient :: ByteString -> ByteString 59decodeLenient :: ByteString -> ByteString