Skip to content

Commit

Permalink
now using exported Strict* and Lazy*, updated Builder* to match other…
Browse files Browse the repository at this point in the history
… packages
  • Loading branch information
BebeSparkelSparkel committed Apr 13, 2024
1 parent c9b1544 commit d395f52
Show file tree
Hide file tree
Showing 14 changed files with 43 additions and 44 deletions.
2 changes: 1 addition & 1 deletion biparsing-binary/tests/Biparse/Binary/GenericsSpec.hs
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import Biparse.Binary.Generics
spec :: Spec
spec = do
fb "genericBinaryAdtIsoClass"
(genericBinaryAdtIsoClass :: Iso IndexContext IO IO () BuilderByteString () (IndexPosition LazyByteString) ABC)
(genericBinaryAdtIsoClass :: Iso IndexContext IO IO () ByteStringBuilder () (IndexPosition LazyByteString) ABC)
()
()
(\fw -> do
Expand Down
2 changes: 1 addition & 1 deletion biparsing-binary/tests/Biparse/BinarySpec.hs
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ spec = do
test "int64" int64
test "int128" int128

test :: (Binary b, Arbitrary b, Eq b, Show b) => String -> Iso IndexContext IO IO () BuilderByteString () (IndexPosition LazyByteString) b -> Spec
test :: (Binary b, Arbitrary b, Eq b, Show b) => String -> Iso IndexContext IO IO () ByteStringBuilder () (IndexPosition LazyByteString) b -> Spec
test name bp = fb @IndexContext @(IndexPosition LazyByteString) @IO @IO name bp () ()
(\fw -> prop "same as binary" \ss -> case decodeOrFail ss of
Right (remainder, i, x) -> fw (startIndex ss) `shouldReturn` (x, IndexPosition i remainder)
Expand Down
1 change: 1 addition & 0 deletions biparsing-core-tests/biparsing-core-tests.cabal
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ test-suite spec
Biparse.ListSpec
Biparse.PolarizeSpec
Biparse.UnorderedSpec
Control.Monad.HandleWriterSpec
Control.Monad.StateErrorSpec
Control.Monad.UnrecoverableSpec
hs-source-dirs:
Expand Down
2 changes: 1 addition & 1 deletion biparsing-core-tests/tests/Biparse/BiparserSpec.hs
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ spec = do
it "print string" $ b "abc" >>= (`shouldBe` ("abc", ["abc"]))

fb "Differing parser and printer type"
(one :: Iso UnixLC (FM ByteString) EitherString () BuilderByteString () (Position () ByteString) Word8)
(one :: Iso UnixLC (FM ByteString) EitherString () ByteStringBuilder () (Position () ByteString) Word8)
()
()
(\f -> do
Expand Down
2 changes: 1 addition & 1 deletion biparsing-core-tests/tests/Biparse/Context/IndexSpec.hs
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ spec = do
runBackward bp () () 'b' `shouldBe` EValue ('b', "b")

it "take" do
let bp :: Iso IndexContext (EISP ByteString) EitherString () BuilderByteString () (IndexPosition ByteString) ()
let bp :: Iso IndexContext (EISP ByteString) EitherString () ByteStringBuilder () (IndexPosition ByteString) ()
bp = take 48
runForward bp "0123" `shouldBe` Right ((), IndexPosition 1 "123")
runBackward bp () () () `shouldBe` EValue ((), "0")
2 changes: 1 addition & 1 deletion biparsing-mixes/biparsing-mixes.cabal
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ library
, mono-traversable >=1.0.17.0
, mtl
, semigroupoids
, text
, text >=2.1.1
, transformers >=0.6.1.1
mixins:
base hiding (Prelude)
Expand Down
2 changes: 1 addition & 1 deletion biparsing-mixes/package.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ library:
- biparsing-core
- biparsing-text
- bytestring
- text
- text >= 2.1.1
- mono-traversable >= 1.0.17.0
- transformers >= 0.6.1.1
- mtl
Expand Down
8 changes: 4 additions & 4 deletions biparsing-mixes/src/Biparse/AssociatedWriter.hs
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@ type AssociatedWriter :: Type -> Type
type family AssociatedWriter ss

type instance AssociatedWriter [a] = [a] -- -> [a]
type instance AssociatedWriter StrictByteString = BuilderByteString
type instance AssociatedWriter LazyByteString = BuilderByteString
type instance AssociatedWriter StrictText = BuilderText
type instance AssociatedWriter LazyText = BuilderText
type instance AssociatedWriter StrictByteString = ByteStringBuilder
type instance AssociatedWriter LazyByteString = ByteStringBuilder
type instance AssociatedWriter StrictText = TextBuilder
type instance AssociatedWriter LazyText = TextBuilder

14 changes: 6 additions & 8 deletions biparsing-mixes/src/Biparse/Mixes/SubStates.hs
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@
module Biparse.Mixes.SubStates
( module Data.ByteString
, module Data.ByteString.Lazy
, BuilderByteString
, BuilderText
, StrictText
, LazyText
, ByteStringBuilder
, TextBuilder
, TS.StrictText
, TL.LazyText
) where

import Data.ByteString (StrictByteString)
Expand All @@ -15,8 +15,6 @@ import Data.Text qualified as TS
import Data.Text.Lazy qualified as TL
import Data.Text.Lazy.Builder qualified as TB

type BuilderByteString = BB.Builder
type BuilderText = TB.Builder
type StrictText = TS.Text
type LazyText = TL.Text
type ByteStringBuilder = BB.Builder
type TextBuilder = TB.Builder

12 changes: 6 additions & 6 deletions biparsing-mixes/src/Prelude.hs
Original file line number Diff line number Diff line change
Expand Up @@ -58,9 +58,9 @@ instance (Functor n, Monoid w) => BackwardC (Mixes c) n w where

instance Applicative m => ConvertElement (Mixes c) a [a] m where
convertElement = pure . (: [])
instance Applicative m => ConvertElement (Mixes c) Word8 BuilderByteString m where
instance Applicative m => ConvertElement (Mixes c) Word8 ByteStringBuilder m where
convertElement = pure . B.word8
instance Applicative m => ConvertElement (Mixes c) Char BuilderText m where
instance Applicative m => ConvertElement (Mixes c) Char TextBuilder m where
convertElement = pure . TB.singleton
instance Applicative m => ConvertElement (Mixes c) Char TS.Text m where
convertElement = pure . TS.singleton
Expand All @@ -69,13 +69,13 @@ instance Applicative m => ConvertElement (Mixes c) Char TL.Text m where

instance Applicative m => ConvertSequence (Mixes c) a a m where
convertSequence = pure
instance Applicative m => ConvertSequence (Mixes c) StrictByteString BuilderByteString m where
instance Applicative m => ConvertSequence (Mixes c) StrictByteString ByteStringBuilder m where
convertSequence = pure . B.byteString
instance Applicative m => ConvertSequence (Mixes c) LazyByteString BuilderByteString m where
instance Applicative m => ConvertSequence (Mixes c) LazyByteString ByteStringBuilder m where
convertSequence = pure . B.lazyByteString
instance Applicative m => ConvertSequence (Mixes c) StrictText BuilderText m where
instance Applicative m => ConvertSequence (Mixes c) StrictText TextBuilder m where
convertSequence = pure . TB.fromText
instance Applicative m => ConvertSequence (Mixes c) LazyText BuilderText m where
instance Applicative m => ConvertSequence (Mixes c) LazyText TextBuilder m where
convertSequence = pure . TB.fromLazyText

instance InitSuperState c ss => InitSuperState (Mixes c) ss where
Expand Down
2 changes: 1 addition & 1 deletion biparsing-mixes/tests/Prelude.hs
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ module Prelude
, module Biparse.Mixes.SubStates
) where

import Test.Prelude hiding (StrictText, StrictByteString, BuilderByteString)
import Test.Prelude hiding (ByteStringBuilder, TextBuilder)
import Biparse.Mixes.SubStates

import Language.Haskell.TH (Name, TypeQ, Lit, ExpQ, mkName, conT, Lit(StringL), litE)
Expand Down
33 changes: 17 additions & 16 deletions biparsing-test/Prelude.hs
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,10 @@ module Prelude
, module Data.Semigroup
, module GHC.Bits
, module Control.Monad.Writer.Class
, module Data.Text
, module Data.Text.Lazy
, module Data.ByteString
, module Data.ByteString.Lazy

, fb
, EEP
Expand All @@ -99,12 +103,8 @@ module Prelude
, errorIndex
, limit
, FM
, Data.ByteString.ByteString
, Data.Text.Text
, StrictByteString
, LazyByteString
, StrictText
, BuilderByteString
, ByteStringBuilder
, TextBuilder
, packStrictText
, shouldReturn
) where
Expand All @@ -129,7 +129,9 @@ import Control.Monad.Trans.RWS.CPS (RWST, mapRWST, rwsT, runRWST)
import Control.Monad.Writer.Class (MonadWriter)
import Data.Bifunctor (first, second)
import Data.Bool (Bool(True,False), (&&), otherwise, bool)
import Data.ByteString (StrictByteString)
import Data.ByteString.Internal (c2w, w2c)
import Data.ByteString.Lazy (ByteString, LazyByteString)
import Data.Char (Char, isDigit)
import Data.Coerce (coerce)
import Data.Default (Default(def))
Expand All @@ -151,6 +153,8 @@ import Data.Semigroup (Semigroup((<>)))
import Data.Sequence (Seq)
import Data.Sequences (IsSequence, Index, cons, snoc, singleton, drop)
import Data.String (String, IsString(fromString))
import Data.Text (Text, StrictText)
import Data.Text.Lazy (LazyText)
import Data.Tuple (fst, snd, uncurry)
import Data.Vector (Vector)
import Data.Word
Expand Down Expand Up @@ -179,13 +183,12 @@ import Control.Monad.State (StateT)
import Control.Monad.Trans.State.Selectable (StateTransformer)
import Control.Monad.Trans.Writer.Selectable (WriterTransformer)
import Control.Monad.Writer.CPS (WriterT)
import Data.ByteString qualified
import Data.ByteString.Builder qualified
import Data.ByteString.Builder.Internal (byteStringInsert, byteStringThreshold, toLazyByteStringWith, safeStrategy, smallChunkSize)
import Data.ByteString.Lazy qualified
import Data.Convert (ConvertSequence(convertSequence))
import Data.Either (Either(Left))
import Data.Text qualified
import Data.Text.Lazy.Builder qualified
import GHC.Exts (IsList(..))
import System.Timeout (timeout)
import Test.Hspec qualified
Expand Down Expand Up @@ -238,15 +241,13 @@ instance IsList a => IsList (Identity a) where
fromList = Identity . fromList
toList = GHC.Exts.toList . runIdentity

type StrictText = Data.Text.Text
type StrictByteString = Data.ByteString.ByteString
type LazyByteString = Data.ByteString.Lazy.ByteString
type BuilderByteString = Data.ByteString.Builder.Builder

packStrictText :: String -> StrictText
packStrictText = Data.Text.pack

instance Eq BuilderByteString where x == y = Data.ByteString.Builder.toLazyByteString x == Data.ByteString.Builder.toLazyByteString y
type ByteStringBuilder = Data.ByteString.Builder.Builder
type TextBuilder = Data.Text.Lazy.Builder.Builder

instance Eq ByteStringBuilder where x == y = Data.ByteString.Builder.toLazyByteString x == Data.ByteString.Builder.toLazyByteString y

instance Applicative m => ConvertSequence c String StrictText m where convertSequence = pure . fromString
instance Applicative m => ConvertSequence c String StrictByteString m where convertSequence = pure . fromString
Expand All @@ -271,8 +272,8 @@ instance ShouldReturn IO where shouldReturn' x y = Test.Hspec.shouldReturn x y
instance Show a => ShouldReturn (Either a) where shouldReturn' x y = either (fail . ("Expected Right but received " <>) . show . Left @_ @()) (`shouldBe` y) x


instance IsList BuilderByteString where
type Item BuilderByteString = Word8
instance IsList ByteStringBuilder where
type Item ByteStringBuilder = Word8
fromList = byteStringInsert . fromList
fromListN n = byteStringThreshold n . fromList
toList = toList . toLazyByteStringWith (safeStrategy smallChunkSize smallChunkSize) mempty
2 changes: 1 addition & 1 deletion biparsing-test/biparsing-test.cabal
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ library
, quickcheck-instances
, safe
, semigroupoids
, text
, text >=2.1.1
, transformers
, vector
mixins:
Expand Down
3 changes: 1 addition & 2 deletions biparsing-test/package.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@ library:
- biparsing-core
- biparsing-core
- biparsing-text
- biparsing-text
- bytestring
- containers
- data-default
Expand All @@ -31,7 +30,7 @@ library:
- mtl
- quickcheck-instances
- semigroupoids
- text
- text >= 2.1.1
- transformers
- vector
ghc-options:
Expand Down

0 comments on commit d395f52

Please sign in to comment.