convertible-ascii (empty) → 0.1
raw patch · 5 files changed
+246/−0 lines, 5 filesdep +asciidep +basedep +base-unicode-symbolssetup-changed
Dependencies added: ascii, base, base-unicode-symbols, blaze-builder, bytestring, convertible-text, failure, text
Files
- COPYING +28/−0
- Data/Convertible/Instances/Ascii.hs +161/−0
- README.rst +8/−0
- Setup.hs +4/−0
- convertible-ascii.cabal +45/−0
+ COPYING view
@@ -0,0 +1,28 @@+<!-- -*- xml -*-++convertible-ascii is in the public domain.++See http://creativecommons.org/licenses/publicdomain/++-->++<rdf:RDF xmlns="http://web.resource.org/cc/"+ xmlns:dc="http://purl.org/dc/elements/1.1/"+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">+ <Work rdf:about="http://cielonegro.org/Convertible-Ascii">+ <dc:title>convertible-ascii</dc:title>+ <dc:rights>+ <Agent>+ <dc:title>PHO</dc:title>+ </Agent>+ </dc:rights>+ <license rdf:resource="http://web.resource.org/cc/PublicDomain" />+ </Work>+ + <License rdf:about="http://web.resource.org/cc/PublicDomain">+ <permits rdf:resource="http://web.resource.org/cc/Reproduction" />+ <permits rdf:resource="http://web.resource.org/cc/Distribution" />+ <permits rdf:resource="http://web.resource.org/cc/DerivativeWorks" />+ </License>++</rdf:RDF>
+ Data/Convertible/Instances/Ascii.hs view
@@ -0,0 +1,161 @@+{-# LANGUAGE+ FlexibleContexts+ , MultiParamTypeClasses+ , TemplateHaskell+ , TypeSynonymInstances+ , UnicodeSyntax+ #-}+{-# OPTIONS_GHC -fno-warn-orphans #-}+-- |Instances to convert amongst 'Ascii' strings and other things.+--+-- Note that data types are re-exported only for the documentation+-- purpose. They'll disappear as soon as Haddock's issue #54+-- (<http://trac.haskell.org/haddock/ticket/54>) gets resolved. So you+-- should always import this module as:+--+-- > import Data.Convertible.Instances.Ascii ()+module Data.Convertible.Instances.Ascii+ ( Ascii+ , CIAscii+ , AsciiBuilder+ ) where+import Blaze.ByteString.Builder (Builder)+import Control.Failure+import Data.Ascii (Ascii, CIAscii, AsciiBuilder)+import qualified Data.Ascii as A+import Data.ByteString (ByteString)+import Data.Convertible.Base+import Data.Convertible.Utils+import Data.Text (Text)+import Prelude.Unicode++instance ConvertSuccess Ascii AsciiBuilder where+ {-# INLINE convertSuccess #-}+ convertSuccess = A.toAsciiBuilder++instance ConvertSuccess Ascii ByteString where+ {-# INLINE convertSuccess #-}+ convertSuccess = A.toByteString++instance ConvertSuccess Ascii CIAscii where+ {-# INLINE convertSuccess #-}+ convertSuccess = A.toCIAscii++instance ConvertSuccess Ascii String where+ {-# INLINE convertSuccess #-}+ convertSuccess = A.toString++instance ConvertSuccess Ascii Text where+ {-# INLINE convertSuccess #-}+ convertSuccess = A.toText++instance ConvertSuccess AsciiBuilder Ascii where+ {-# INLINE convertSuccess #-}+ convertSuccess = A.fromAsciiBuilder++instance ConvertSuccess AsciiBuilder Builder where+ {-# INLINE convertSuccess #-}+ convertSuccess = A.toBuilder++instance ConvertSuccess AsciiBuilder ByteString where+ {-# INLINE convertSuccess #-}+ convertSuccess = convertSuccessVia ((⊥) ∷ Ascii)++instance ConvertSuccess AsciiBuilder CIAscii where+ {-# INLINE convertSuccess #-}+ convertSuccess = convertSuccessVia ((⊥) ∷ Ascii)++instance ConvertSuccess AsciiBuilder String where+ {-# INLINE convertSuccess #-}+ convertSuccess = convertSuccessVia ((⊥) ∷ Ascii)++instance ConvertSuccess AsciiBuilder Text where+ {-# INLINE convertSuccess #-}+ convertSuccess = convertSuccessVia ((⊥) ∷ Ascii)++instance ConvertAttempt ByteString Ascii where+ {-# INLINEABLE convertAttempt #-}+ convertAttempt bs+ = case A.fromByteString bs of+ Just a → return a+ Nothing → nonAscii bs++instance ConvertAttempt ByteString AsciiBuilder where+ {-# INLINEABLE convertAttempt #-}+ convertAttempt = convertAttemptVia ((⊥) ∷ Ascii)++instance ConvertAttempt ByteString CIAscii where+ {-# INLINEABLE convertAttempt #-}+ convertAttempt = convertAttemptVia ((⊥) ∷ Ascii)++instance ConvertSuccess CIAscii Ascii where+ {-# INLINE convertSuccess #-}+ convertSuccess = A.fromCIAscii++instance ConvertSuccess CIAscii AsciiBuilder where+ {-# INLINE convertSuccess #-}+ convertSuccess = convertSuccessVia ((⊥) ∷ Ascii)++instance ConvertSuccess CIAscii ByteString where+ {-# INLINE convertSuccess #-}+ convertSuccess = convertSuccessVia ((⊥) ∷ Ascii)++instance ConvertSuccess CIAscii String where+ {-# INLINE convertSuccess #-}+ convertSuccess = convertSuccessVia ((⊥) ∷ Ascii)++instance ConvertSuccess CIAscii Text where+ {-# INLINE convertSuccess #-}+ convertSuccess = convertSuccessVia ((⊥) ∷ Ascii)++instance ConvertAttempt String Ascii where+ {-# INLINEABLE convertAttempt #-}+ convertAttempt s+ = case A.fromChars s of+ Just a → return a+ Nothing → nonAscii s++instance ConvertAttempt String AsciiBuilder where+ {-# INLINEABLE convertAttempt #-}+ convertAttempt = convertAttemptVia ((⊥) ∷ Ascii)++instance ConvertAttempt String CIAscii where+ {-# INLINEABLE convertAttempt #-}+ convertAttempt = convertAttemptVia ((⊥) ∷ Ascii)++instance ConvertAttempt Text Ascii where+ {-# INLINEABLE convertAttempt #-}+ convertAttempt t+ = case A.fromText t of+ Just a → return a+ Nothing → nonAscii t++instance ConvertAttempt Text AsciiBuilder where+ {-# INLINEABLE convertAttempt #-}+ convertAttempt = convertAttemptVia ((⊥) ∷ Ascii)++instance ConvertAttempt Text CIAscii where+ {-# INLINEABLE convertAttempt #-}+ convertAttempt = convertAttemptVia ((⊥) ∷ Ascii)++nonAscii ∷ Failure (ConvertBoundsException Char α) f ⇒ α → f β+{-# INLINE nonAscii #-}+nonAscii = failure ∘ ConvertBoundsException '\0' '\x7F'++deriveAttempts [ ([t| Ascii |], [t| AsciiBuilder |])+ , ([t| Ascii |], [t| ByteString |])+ , ([t| Ascii |], [t| CIAscii |])+ , ([t| Ascii |], [t| String |])+ , ([t| Ascii |], [t| Text |])+ , ([t| AsciiBuilder |], [t| Ascii |])+ , ([t| AsciiBuilder |], [t| Builder |])+ , ([t| AsciiBuilder |], [t| ByteString |])+ , ([t| AsciiBuilder |], [t| CIAscii |])+ , ([t| AsciiBuilder |], [t| String |])+ , ([t| AsciiBuilder |], [t| Text |])+ , ([t| CIAscii |], [t| Ascii |])+ , ([t| CIAscii |], [t| AsciiBuilder |])+ , ([t| CIAscii |], [t| ByteString |])+ , ([t| CIAscii |], [t| String |])+ , ([t| CIAscii |], [t| Text |])+ ]
+ README.rst view
@@ -0,0 +1,8 @@+======+README+======++This package provides `convertible`_ instances for `ascii`_.++.. _convertible: http://hackage.haskell.org/package/convertible-text+.. _ascii: http://hackage.haskell.org/package/ascii
+ Setup.hs view
@@ -0,0 +1,4 @@+#!/usr/bin/env runghc++import Distribution.Simple+main = defaultMain
+ convertible-ascii.cabal view
@@ -0,0 +1,45 @@+Name: convertible-ascii+Synopsis: convertible instances for ascii+Description:+ .+ This package provides convertible instances for ascii:+ .+ * <http://hackage.haskell.org/package/convertible-text>+ .+ * <http://hackage.haskell.org/package/ascii>+ .+Version: 0.1+License: PublicDomain+License-File: COPYING+Author: PHO <pho at cielonegro dot org>+Maintainer: PHO <pho at cielonegro dot org>+Stability: experimental+Homepage: https://github.com/phonohawk/convertible-ascii+Bug-Reports: https://github.com/phonohawk/convertible-ascii/issues+Category: Data, Failure+Tested-With: GHC == 7.0.3+Cabal-Version: >= 1.6+Build-Type: Simple+Extra-Source-Files:+ README.rst++Source-Repository head+ Type: git+ Location: git://github.com/phonohawk/convertible-ascii.git++Library+ Build-Depends:+ ascii == 0.0.*,+ base == 4.*,+ base-unicode-symbols == 0.2.*,+ blaze-builder == 0.3.*,+ bytestring == 0.9.*,+ convertible-text == 0.4.*,+ failure == 0.1.*,+ text == 0.11.*++ Exposed-Modules:+ Data.Convertible.Instances.Ascii++ ghc-options:+ -Wall