Expose Char->[Word8] encode function.
authorEelis van der Weegen <eelis@eelis.net>
Sat, 3 Apr 2010 15:27:18 +0000 (17:27 +0200)
committerEelis van der Weegen <eelis@eelis.net>
Sat, 3 Apr 2010 16:04:33 +0000 (18:04 +0200)
Codec/Binary/UTF8/String.hs

index ef0c0bf..5917c03 100644 (file)
@@ -16,6 +16,7 @@ module Codec.Binary.UTF8.String (
     , decode
     , encodeString
     , decodeString
+    , encodeChar
     
     , isUTF8Encoded
     , utf8Encode
@@ -40,9 +41,9 @@ decodeString xs = decode (map (toEnum . fromEnum) xs)
 replacement_character :: Char
 replacement_character = '\xfffd'
 
--- | Encode a Haskell String to a list of Word8 values, in UTF8 format.
-encode :: String -> [Word8]
-encode = concatMap (map fromIntegral . go . ord)
+-- | Encode a single Haskell Char to a list of Word8 values, in UTF8 format.
+encodeChar :: Char -> [Word8]
+encodeChar = map fromIntegral . go . ord
  where
   go oc
    | oc <= 0x7f       = [oc]
@@ -61,6 +62,11 @@ encode = concatMap (map fromIntegral . go . ord)
                         , 0x80 + oc .&. 0x3f
                         ]
 
+
+-- | Encode a Haskell String to a list of Word8 values, in UTF8 format.
+encode :: String -> [Word8]
+encode = concatMap encodeChar
+
 --
 -- | Decode a UTF8 string packed into a list of Word8 values, directly to String
 --