ascii 0.0.1.1 → 0.0.2
raw patch · 2 files changed
+13/−26 lines, 2 filesdep +case-insensitivePVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependencies added: case-insensitive
API changes (from Hackage documentation)
- Data.Ascii: data CIAscii
- Data.Ascii: instance Data CIAscii
- Data.Ascii: instance Eq CIAscii
- Data.Ascii: instance IsString CIAscii
- Data.Ascii: instance Ord CIAscii
- Data.Ascii: instance Read CIAscii
- Data.Ascii: instance Show CIAscii
- Data.Ascii: instance Typeable CIAscii
+ Data.Ascii: instance FoldCase Ascii
+ Data.Ascii: instance Monoid Ascii
+ Data.Ascii: type CIAscii = CI Ascii
Files
- Data/Ascii.hs +7/−21
- ascii.cabal +6/−5
Data/Ascii.hs view
@@ -31,7 +31,7 @@ import Data.ByteString (ByteString) import qualified Data.ByteString as S import qualified Data.ByteString.Char8 as S8-import Data.Char (toLower, isAscii)+import Data.Char (isAscii) import Data.String (IsString (..)) import Data.Data (Data) import Data.Typeable (Typeable)@@ -40,26 +40,12 @@ import qualified Data.Text.Encoding as TE import qualified Blaze.ByteString.Builder as Blaze import Data.Monoid (Monoid)+import Data.CaseInsensitive (FoldCase, CI, mk, original) newtype Ascii = Ascii ByteString- deriving (Show, Eq, Read, Ord, Data, Typeable, IsString)--data CIAscii = CIAscii- { ciOriginal :: !ByteString- , ciLowerCase :: !ByteString- }- deriving (Data, Typeable)+ deriving (Show, Eq, Read, Ord, Data, Typeable, IsString, FoldCase, Monoid) -instance Show CIAscii where- show = show . ciOriginal-instance Read CIAscii where- readsPrec i = map (\(x, y) -> (toCIAscii x, y)) . readsPrec i-instance Eq CIAscii where- x == y = ciLowerCase x == ciLowerCase y-instance Ord CIAscii where- x <= y = ciLowerCase x <= ciLowerCase y-instance IsString CIAscii where- fromString = toCIAscii . unsafeFromString+type CIAscii = CI Ascii fromByteString :: ByteString -> Maybe Ascii fromByteString bs@@ -87,10 +73,10 @@ unsafeFromText = Ascii . TE.encodeUtf8 toCIAscii :: Ascii -> CIAscii-toCIAscii (Ascii bs) = CIAscii bs $ S8.map toLower bs+toCIAscii = mk fromCIAscii :: CIAscii -> Ascii-fromCIAscii = Ascii . ciOriginal+fromCIAscii = original toByteString :: Ascii -> ByteString toByteString (Ascii bs) = bs@@ -102,7 +88,7 @@ toText (Ascii bs) = TE.decodeASCII bs ciToByteString :: CIAscii -> ByteString-ciToByteString = ciOriginal+ciToByteString = toByteString . original toAsciiBuilder :: Ascii -> AsciiBuilder toAsciiBuilder (Ascii bs) = AsciiBuilder $ Blaze.fromByteString bs
ascii.cabal view
@@ -1,5 +1,5 @@ Name: ascii-Version: 0.0.1.1+Version: 0.0.2 Synopsis: Type-safe, bytestring-based ASCII values. License: BSD3 License-file: LICENSE@@ -12,8 +12,9 @@ Library Exposed-modules: Data.Ascii- Build-depends: base >= 4 && < 5- , bytestring >= 0.9 && < 0.10- , text >= 0.11 && < 0.12- , blaze-builder >= 0.2.1.4 && < 0.3+ Build-depends: base >= 4 && < 5+ , bytestring >= 0.9 && < 0.10+ , text >= 0.11 && < 0.12+ , blaze-builder >= 0.2.1.4 && < 0.3+ , case-insensitive >= 0.2 && < 0.3 Ghc-options: -Wall