packages feed

string-conversions (empty) → 0.1

raw patch · 4 files changed

+204/−0 lines, 4 filesdep +basedep +bytestringdep +textsetup-changed

Dependencies added: base, bytestring, text, utf8-string

Files

+ Data/String/Conversions.hs view
@@ -0,0 +1,141 @@+{-# language MultiParamTypeClasses, TypeSynonymInstances, FlexibleInstances #-}++-- | A type class for converting strings.+-- Supported types are:+--+--     * 'String'+--+--     * strict 'Data.ByteString.ByteString'+--+--     * lazy 'Data.ByteString.Lazy.ByteString'+--+--     * strict 'Data.Text.Text'+--+--     * lazy 'Data.Text.Lazy.Text'+--+-- Assumes UTF-8.++module Data.String.Conversions where+++import Data.Monoid++import Control.Applicative++-- string imports++import qualified Data.ByteString+import qualified Data.ByteString.UTF8++import qualified Data.ByteString.Lazy+import qualified Data.ByteString.Lazy.UTF8++import qualified Data.Text+import qualified Data.Text.Encoding++import qualified Data.Text.Lazy+import qualified Data.Text.Lazy.Encoding+++-- * class and conversions++class ConvertibleStrings a b where+    convertString :: a -> b++cs :: ConvertibleStrings a b => a -> b+cs = convertString+++-- * type synonyms++type StrictByteString = Data.ByteString.ByteString+type SBS              = Data.ByteString.ByteString++type LazyByteString = Data.ByteString.Lazy.ByteString+type LBS            = Data.ByteString.Lazy.ByteString++type StrictText = Data.Text.Text+type ST         = Data.Text.Text++type LazyText = Data.Text.Lazy.Text+type LT       = Data.Text.Lazy.Text+++-- instances+-- ---------++-- from String++instance ConvertibleStrings String StrictByteString where+    convertString = Data.ByteString.UTF8.fromString++instance ConvertibleStrings String LazyByteString where+    convertString = Data.ByteString.Lazy.UTF8.fromString++instance ConvertibleStrings String StrictText where+    convertString = Data.Text.pack++instance ConvertibleStrings String LazyText where+    convertString = Data.Text.Lazy.pack+++-- from StrictByteString++instance ConvertibleStrings StrictByteString String where+    convertString = Data.ByteString.UTF8.toString++instance ConvertibleStrings StrictByteString LazyByteString where+    convertString = Data.ByteString.Lazy.fromChunks . pure++instance ConvertibleStrings StrictByteString StrictText where+    convertString = Data.Text.Encoding.decodeUtf8++instance ConvertibleStrings StrictByteString LazyText where+    convertString =+        Data.Text.Lazy.Encoding.decodeUtf8 . Data.ByteString.Lazy.fromChunks . pure+++-- from LazyByteString++instance ConvertibleStrings LazyByteString String where+    convertString = Data.ByteString.Lazy.UTF8.toString++instance ConvertibleStrings LazyByteString StrictByteString where+    convertString = mconcat . Data.ByteString.Lazy.toChunks++instance ConvertibleStrings LazyByteString StrictText where+    convertString = Data.Text.Encoding.decodeUtf8 . mconcat . Data.ByteString.Lazy.toChunks++instance ConvertibleStrings LazyByteString LazyText where+    convertString = Data.Text.Lazy.Encoding.decodeUtf8+++-- from StrictText++instance ConvertibleStrings StrictText String where+    convertString = Data.Text.unpack++instance ConvertibleStrings StrictText StrictByteString where+    convertString = Data.Text.Encoding.encodeUtf8++instance ConvertibleStrings StrictText LazyByteString where+    convertString = Data.ByteString.Lazy.fromChunks . pure . Data.Text.Encoding.encodeUtf8++instance ConvertibleStrings StrictText LazyText where+    convertString = Data.Text.Lazy.fromChunks . pure+++-- from LazyText++instance ConvertibleStrings LazyText String where+    convertString = Data.Text.Lazy.unpack++instance ConvertibleStrings LazyText StrictByteString where+    convertString =+        mconcat . Data.ByteString.Lazy.toChunks . Data.Text.Lazy.Encoding.encodeUtf8++instance ConvertibleStrings LazyText LazyByteString where+    convertString = Data.Text.Lazy.Encoding.encodeUtf8++instance ConvertibleStrings LazyText StrictText where+    convertString = mconcat . Data.Text.Lazy.toChunks
+ LICENSE view
@@ -0,0 +1,30 @@+Copyright (c) 2012, Sönke Hahn++All rights reserved.++Redistribution and use in source and binary forms, with or without+modification, are permitted provided that the following conditions are met:++    * Redistributions of source code must retain the above copyright+      notice, this list of conditions and the following disclaimer.++    * Redistributions in binary form must reproduce the above+      copyright notice, this list of conditions and the following+      disclaimer in the documentation and/or other materials provided+      with the distribution.++    * Neither the name of Sönke Hahn nor the names of other+      contributors may be used to endorse or promote products derived+      from this software without specific prior written permission.++THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ Setup.hs view
@@ -0,0 +1,2 @@+import Distribution.Simple+main = defaultMain
+ string-conversions.cabal view
@@ -0,0 +1,31 @@+-- Initial string-conversions.cabal generated by cabal init. For further+-- documentation, see http://haskell.org/cabal/users-guide/++name:                string-conversions+version:             0.1+synopsis:            Simplifies dealing with different types for strings+description:         Provides a simple type class for converting values+                     of different string types+                     into values of other string types.+license:             BSD3+license-file:        LICENSE+author:              Sönke Hahn+maintainer:          shahn@joyridelabs.de+-- copyright:+category:            Data+build-type:          Simple+cabal-version:       >=1.8++source-repository head+  type:     darcs+  location: http://patch-tag.com/r/shahn/string-conversions/++library+  exposed-modules:     Data.String.Conversions+  build-depends:+    base < 5,+    bytestring == 0.9.*,+    text == 0.11.*,+    utf8-string == 0.3.*+  ghc-options:+    -Wall