packages feed

string-conversions 0.1 → 0.2

raw patch · 2 files changed

+36/−10 lines, 2 files

Files

Data/String/Conversions.hs view
@@ -1,4 +1,4 @@-{-# language MultiParamTypeClasses, TypeSynonymInstances, FlexibleInstances #-}+{-# language MultiParamTypeClasses, TypeSynonymInstances, FlexibleInstances, CPP #-}  -- | A type class for converting strings. -- Supported types are:@@ -13,11 +13,29 @@ -- --     * lazy 'Data.Text.Lazy.Text' ----- Assumes UTF-8.+-- Assumes UTF-8 encoding for both types of ByteStrings. -module Data.String.Conversions where+module Data.String.Conversions (+    -- * class and conversions+    ConvertibleStrings(..),+    cs, +    -- * type synonyms+    StrictByteString,+    SBS,+    LazyByteString,+    LBS,+    StrictText,+    ST,+    LazyText,+    LT, +    -- | Generic string concatenation (with ghc >= 7.4 this is a re-export from Data.Monoid+    -- to avoid clashes.)+    (<>),+  ) where++ import Data.Monoid  import Control.Applicative@@ -31,10 +49,11 @@ import qualified Data.ByteString.Lazy.UTF8  import qualified Data.Text-import qualified Data.Text.Encoding+import qualified Data.Text.Encoding hiding (decodeUtf8)+import qualified Data.Text.Encoding.Error  import qualified Data.Text.Lazy-import qualified Data.Text.Lazy.Encoding+import qualified Data.Text.Lazy.Encoding hiding (decodeUtf8)   -- * class and conversions@@ -45,6 +64,10 @@ cs :: ConvertibleStrings a b => a -> b cs = convertString +#if !MIN_VERSION_base(4,5,0)+(<>) :: Monoid s => s -> s -> s+(<>) = mappend+#endif  -- * type synonyms @@ -88,11 +111,12 @@     convertString = Data.ByteString.Lazy.fromChunks . pure  instance ConvertibleStrings StrictByteString StrictText where-    convertString = Data.Text.Encoding.decodeUtf8+    convertString = Data.Text.Encoding.decodeUtf8With Data.Text.Encoding.Error.lenientDecode  instance ConvertibleStrings StrictByteString LazyText where     convertString =-        Data.Text.Lazy.Encoding.decodeUtf8 . Data.ByteString.Lazy.fromChunks . pure+        Data.Text.Lazy.Encoding.decodeUtf8With Data.Text.Encoding.Error.lenientDecode .+        Data.ByteString.Lazy.fromChunks . pure   -- from LazyByteString@@ -104,10 +128,12 @@     convertString = mconcat . Data.ByteString.Lazy.toChunks  instance ConvertibleStrings LazyByteString StrictText where-    convertString = Data.Text.Encoding.decodeUtf8 . mconcat . Data.ByteString.Lazy.toChunks+    convertString =+        Data.Text.Encoding.decodeUtf8With  Data.Text.Encoding.Error.lenientDecode .+        mconcat . Data.ByteString.Lazy.toChunks  instance ConvertibleStrings LazyByteString LazyText where-    convertString = Data.Text.Lazy.Encoding.decodeUtf8+    convertString = Data.Text.Lazy.Encoding.decodeUtf8With Data.Text.Encoding.Error.lenientDecode   -- from StrictText
string-conversions.cabal view
@@ -2,7 +2,7 @@ -- documentation, see http://haskell.org/cabal/users-guide/  name:                string-conversions-version:             0.1+version:             0.2 synopsis:            Simplifies dealing with different types for strings description:         Provides a simple type class for converting values                      of different string types