packages feed

text-builder-dev 0.3.8 → 0.3.9

raw patch · 3 files changed

+134/−25 lines, 3 filesdep +lawful-conversions

Dependencies added: lawful-conversions

Files

library/TextBuilderDev.hs view
@@ -88,6 +88,7 @@ import qualified Data.Text.Lazy as TextLazy import qualified Data.Text.Lazy.Builder as TextLazyBuilder import qualified DeferredFolds.Unfoldr as Unfoldr+import qualified LawfulConversions import qualified Test.QuickCheck.Gen as QcGen import qualified TextBuilderDev.Allocator as Allocator import TextBuilderDev.Prelude hiding (intercalate, length, null)@@ -130,28 +131,6 @@   toTextBuilder = id   fromTextBuilder = id -instance IsomorphicToTextBuilder Text where-  toTextBuilder = text-  fromTextBuilder = buildText--instance IsomorphicToTextBuilder String where-  toTextBuilder = fromString-  fromTextBuilder = Text.unpack . buildText--instance IsomorphicToTextBuilder TextLazy.Text where-  toTextBuilder = lazyText-  fromTextBuilder = TextLazy.fromStrict . buildText--instance IsomorphicToTextBuilder TextLazyBuilder.Builder where-  toTextBuilder = text . TextLazy.toStrict . TextLazyBuilder.toLazyText-  fromTextBuilder = TextLazyBuilder.fromText . buildText--#if MIN_VERSION_text(2,0,2)-instance IsomorphicToTextBuilder TextEncoding.StrictBuilder where-  toTextBuilder = toTextBuilder . TextEncoding.strictBuilderToText-  fromTextBuilder = TextEncoding.textToStrictBuilder . fromTextBuilder-#endif- -- * --  -- |@@ -218,33 +197,153 @@         intervalInSeconds @Double <$> arbitrary       ] +-- ** Strict Text++instance IsomorphicToTextBuilder Text where+  toTextBuilder = text+  fromTextBuilder = buildText+ instance IsomorphicTo TextBuilder Text where   to = TextBuilderDev.text  instance IsomorphicTo Text TextBuilder where   to = TextBuilderDev.buildText +instance LawfulConversions.IsSome TextBuilder Text where+  to = TextBuilderDev.text++instance LawfulConversions.IsSome Text TextBuilder where+  to = TextBuilderDev.buildText++instance LawfulConversions.IsMany TextBuilder Text++instance LawfulConversions.IsMany Text TextBuilder++instance LawfulConversions.Is TextBuilder Text++instance LawfulConversions.Is Text TextBuilder++-- ** String++instance IsomorphicToTextBuilder String where+  toTextBuilder = fromString+  fromTextBuilder = Text.unpack . buildText++instance LawfulConversions.IsSome String TextBuilder where+  to = Text.unpack . buildText+  maybeFrom = fmap text . LawfulConversions.maybeFrom++instance LawfulConversions.IsMany String TextBuilder where+  from = text . LawfulConversions.from++-- ** Lazy Text++instance IsomorphicToTextBuilder TextLazy.Text where+  toTextBuilder = lazyText+  fromTextBuilder = TextLazy.fromStrict . buildText+ instance IsomorphicTo TextBuilder TextLazy.Text where   to = TextBuilderDev.lazyText  instance IsomorphicTo TextLazy.Text TextBuilder where   to = to . to @Text +instance LawfulConversions.IsSome TextBuilder TextLazy.Text where+  to = lazyText++instance LawfulConversions.IsSome TextLazy.Text TextBuilder where+  to = TextLazy.fromStrict . buildText++instance LawfulConversions.IsMany TextBuilder TextLazy.Text++instance LawfulConversions.IsMany TextLazy.Text TextBuilder++instance LawfulConversions.Is TextBuilder TextLazy.Text++instance LawfulConversions.Is TextLazy.Text TextBuilder++-- ** Lazy Text Builder++instance IsomorphicToTextBuilder TextLazyBuilder.Builder where+  toTextBuilder = text . TextLazy.toStrict . TextLazyBuilder.toLazyText+  fromTextBuilder = TextLazyBuilder.fromText . buildText+ instance IsomorphicTo TextBuilder TextLazyBuilder.Builder where   to = to . to @TextLazy.Text  instance IsomorphicTo TextLazyBuilder.Builder TextBuilder where   to = to . to @Text -#if MIN_VERSION_text(2,0,2)+instance LawfulConversions.IsSome TextBuilder TextLazyBuilder.Builder where+  to = text . TextLazy.toStrict . TextLazyBuilder.toLazyText +instance LawfulConversions.IsSome TextLazyBuilder.Builder TextBuilder where+  to = TextLazyBuilder.fromText . buildText++instance LawfulConversions.IsMany TextBuilder TextLazyBuilder.Builder++instance LawfulConversions.IsMany TextLazyBuilder.Builder TextBuilder++instance LawfulConversions.Is TextBuilder TextLazyBuilder.Builder++instance LawfulConversions.Is TextLazyBuilder.Builder TextBuilder++-- ** Strict Text Builder++#if MIN_VERSION_text(2,1,2)++instance IsomorphicToTextBuilder TextEncoding.StrictTextBuilder where+  toTextBuilder = toTextBuilder . TextEncoding.strictBuilderToText+  fromTextBuilder = TextEncoding.textToStrictBuilder . fromTextBuilder++instance IsomorphicTo TextBuilder TextEncoding.StrictTextBuilder where+  to = to . TextEncoding.strictBuilderToText++instance IsomorphicTo TextEncoding.StrictTextBuilder TextBuilder where+  to = TextEncoding.textToStrictBuilder . to++instance LawfulConversions.IsSome TextBuilder TextEncoding.StrictTextBuilder where+  to = toTextBuilder . TextEncoding.strictBuilderToText++instance LawfulConversions.IsSome TextEncoding.StrictTextBuilder TextBuilder where+  to = TextEncoding.textToStrictBuilder . fromTextBuilder++instance LawfulConversions.IsMany TextBuilder TextEncoding.StrictTextBuilder++instance LawfulConversions.IsMany TextEncoding.StrictTextBuilder TextBuilder++instance LawfulConversions.Is TextBuilder TextEncoding.StrictTextBuilder++instance LawfulConversions.Is TextEncoding.StrictTextBuilder TextBuilder++#elif MIN_VERSION_text(2,0,2)++instance IsomorphicToTextBuilder TextEncoding.StrictBuilder where+  toTextBuilder = toTextBuilder . TextEncoding.strictBuilderToText+  fromTextBuilder = TextEncoding.textToStrictBuilder . fromTextBuilder+ instance IsomorphicTo TextBuilder TextEncoding.StrictBuilder where   to = to . TextEncoding.strictBuilderToText  instance IsomorphicTo TextEncoding.StrictBuilder TextBuilder where   to = TextEncoding.textToStrictBuilder . to +instance LawfulConversions.IsSome TextBuilder TextEncoding.StrictBuilder where+  to = toTextBuilder . TextEncoding.strictBuilderToText++instance LawfulConversions.IsSome TextEncoding.StrictBuilder TextBuilder where+  to = TextEncoding.textToStrictBuilder . fromTextBuilder++instance LawfulConversions.IsMany TextBuilder TextEncoding.StrictBuilder++instance LawfulConversions.IsMany TextEncoding.StrictBuilder TextBuilder++instance LawfulConversions.Is TextBuilder TextEncoding.StrictBuilder++instance LawfulConversions.Is TextEncoding.StrictBuilder TextBuilder+ #endif+ -- * Accessors  -- | Get the amount of characters.
test/Main.hs view
@@ -5,12 +5,14 @@ import qualified Data.Text as Text import qualified Data.Text.Lazy as TextLazy import qualified Data.Text.Lazy.Builder as TextLazyBuilder+import qualified LawfulConversions import Numeric.Compat import Test.QuickCheck.Classes import Test.QuickCheck.Instances () import Test.Tasty import Test.Tasty.HUnit import Test.Tasty.QuickCheck hiding ((.&.))+import TextBuilderDev (TextBuilder) import qualified TextBuilderDev as B import qualified TextBuilderDev.TastyExtras as Extras import Prelude hiding (choose, showBin)@@ -194,7 +196,13 @@         testLaws $ showLaws (Proxy @B.TextBuilder),         testLaws $ eqLaws (Proxy @B.TextBuilder),         testLaws $ semigroupLaws (Proxy @B.TextBuilder),-        testLaws $ monoidLaws (Proxy @B.TextBuilder)+        testLaws $ monoidLaws (Proxy @B.TextBuilder),+        testGroup "LawfulConversions integration"+          $ [ testProperties "Is Text" $ LawfulConversions.isProperties @Text @TextBuilder Proxy Proxy,+              testProperties "Is Lazy Text" $ LawfulConversions.isProperties @TextLazy.Text @TextBuilder Proxy Proxy,+              testProperties "Is Lazy Text Builder" $ LawfulConversions.isProperties @TextLazyBuilder.Builder @TextBuilder Proxy Proxy,+              testProperties "IsMany String" $ LawfulConversions.isManyProperties @String @TextBuilder Proxy Proxy+            ]       ]   where     bigTest = 10000
text-builder-dev.cabal view
@@ -1,6 +1,6 @@ cabal-version: 3.0 name: text-builder-dev-version: 0.3.8+version: 0.3.9 category: Text, Builders synopsis: Edge of developments for "text-builder" description:@@ -82,6 +82,7 @@     bytestring >=0.10 && <0.13,     deferred-folds >=0.9.10.1 && <0.10,     isomorphism-class >=0.3 && <0.4,+    lawful-conversions >=0.1.4 && <0.2,     quickcheck-instances >=0.3.28 && <0.4,     split >=0.2.3.4 && <0.3,     text >=1.0 && <3,@@ -96,6 +97,7 @@   other-modules: TextBuilderDev.TastyExtras   build-depends:     base-compat >=0.13,+    lawful-conversions >=0.1.4 && <0.2,     quickcheck-classes >=0.6.5 && <0.7,     quickcheck-instances >=0.3.28 && <0.4,     rerebase <2,