]> gitweb @ CieloNegro.org - Lucu.git/commitdiff
Data.URI.Scheme
authorPHO <pho@cielonegro.org>
Thu, 12 Jan 2012 22:52:47 +0000 (07:52 +0900)
committerPHO <pho@cielonegro.org>
Thu, 12 Jan 2012 22:52:47 +0000 (07:52 +0900)
Ditz-issue: c80e79a2585ac20cc5ed677d70b6983a2842a81d

Data/URI/Internal/Scheme.hs

index 2e3ba24efa7ac59a9e2c999910e7275f5713aaf1..da8294ef679ed5b966a6d795000cd2944d18b7b4 100644 (file)
@@ -12,7 +12,7 @@ module Data.URI.Internal.Scheme
     ( Scheme
     )
     where
-import Data.Ascii (CIAscii)
+import Data.Ascii (AsciiBuilder, CIAscii)
 import qualified Data.Ascii as A
 import Data.Attoparsec.Char8
 import qualified Data.ByteString.Char8 as BS
@@ -64,11 +64,16 @@ instance Default (Parser Scheme) where
 
 instance ConvertSuccess Scheme CIAscii where
     {-# INLINE convertSuccess #-}
-    convertSuccess (Scheme s) = s
+    convertSuccess (Scheme s) = foldCase s
+
+instance ConvertSuccess Scheme AsciiBuilder where
+    {-# INLINE convertSuccess #-}
+    convertSuccess = A.toAsciiBuilder ∘ A.fromCIAscii ∘ cs
 
 instance ConvertAttempt CIAscii Scheme where
     {-# INLINE convertAttempt #-}
     convertAttempt = parseAttempt' def ∘ A.fromCIAscii
 
-deriveAttempts [ ([t| Scheme |], [t| CIAscii |])
+deriveAttempts [ ([t| Scheme |], [t| AsciiBuilder |])
+               , ([t| Scheme |], [t| CIAscii      |])
                ]