packages feed

monoid-subclasses 0.3.2 → 0.3.3

raw patch · 2 files changed

+25/−9 lines, 2 files

Files

Data/Monoid/Instances/ByteString/UTF8.hs view
@@ -9,11 +9,12 @@ --   module Data.Monoid.Instances.ByteString.UTF8 (-   ByteStringUTF8(..)+   ByteStringUTF8(..), decode    ) where -import Prelude hiding (drop, dropWhile, foldl, foldl1, foldr, foldr1, scanl, scanr, scanl1, scanr1, map, concatMap, break, span)+import Prelude hiding (drop, dropWhile, foldl, foldl1, foldr, foldr1, scanl, scanr, scanl1, scanr1,+                       map, concatMap, break, span)  import Data.Bits ((.&.), (.|.), shiftL, shiftR) import Data.Char (chr, ord)@@ -36,6 +37,20 @@ import qualified Data.Monoid.Textual as Textual (TextualMonoid(..))  newtype ByteStringUTF8 = ByteStringUTF8 ByteString deriving (Eq, Ord)++-- | Takes a raw 'ByteString' chunk and returns a pair of 'ByteStringUTF8' decoding the prefix of the chunk and the+-- remaining suffix that is either null or contains the incomplete last character of the chunk.+decode :: ByteString -> (ByteStringUTF8, ByteString)+decode bs+   | ByteString.null bs || l < 0x80 = (ByteStringUTF8 bs, mempty)+   | l >= 0xC0 = (ByteStringUTF8 (ByteString.init bs), ByteString.singleton l)+   | ByteString.null prefix = (mempty, bs)+   | otherwise =+      case toChar (ByteString.last prefix) suffix+      of Nothing -> (ByteStringUTF8 (ByteString.init prefix), drop (ByteString.length prefix - 1) bs)+         Just{} -> (ByteStringUTF8 bs, mempty)+   where (prefix, suffix) = ByteString.breakEnd byteStartsCharacter bs+         l = ByteString.last bs  instance Monoid ByteStringUTF8 where    mempty = ByteStringUTF8 ByteString.empty
monoid-subclasses.cabal view
@@ -1,23 +1,24 @@ Name:                monoid-subclasses-Version:             0.3.2+Version:             0.3.3 Cabal-Version:       >= 1.10 Build-Type:          Simple Synopsis:            Subclasses of Monoid-Category:            Data+Category:            Data, Algebra, Text Tested-with:         GHC Description:-  This package defines a hierarchy of subclasses of 'Monoid' together with their instances for all data-  structures from base, containers, and text packages.+  A hierarchy of subclasses of 'Monoid' together with their instances for all data structures from base, containers, and+  text packages.    License:             BSD3 License-file:        BSD3-LICENSE.txt Copyright:           (c) 2013 Mario Blazevic Author:              Mario Blazevic-Maintainer:          blamario@yahoo.com+Maintainer:          Mario Blazevic <blamario@yahoo.com> Homepage:            https://github.com/blamario/monoid-subclasses/+Bug-reports:         https://github.com/blamario/monoid-subclasses/issues Source-repository head-  type:              darcs-  location:          http://code.haskell.org/SCC/+  type:              git+  location:          https://github.com/blamario/monoid-subclasses  Library   Exposed-Modules:   Data.Monoid.Cancellative, Data.Monoid.Factorial, Data.Monoid.Null, Data.Monoid.Textual,