Skip to content

Commit 1720c03

Browse files
committed
Add getShortByteString
Remove unneeded CPP
1 parent a0e29ca commit 1720c03

7 files changed

Lines changed: 9 additions & 30 deletions

File tree

changelog.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ binary
44
binary-0.9.0.0
55
--------------
66

7+
- Add `Data.Binary.Get.getShortByteString`
78
- Don't reexport `Data.Word` from `Data.Binary`
89

910
binary-0.8.9.2

src/Data/Binary/Builder.hs

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,7 @@ module Data.Binary.Builder (
2828
, append
2929
, fromByteString -- :: S.ByteString -> Builder
3030
, fromLazyByteString -- :: L.ByteString -> Builder
31-
#if MIN_VERSION_bytestring(0,10,4)
3231
, fromShortByteString -- :: T.ByteString -> Builder
33-
#endif
3432
-- * Flushing the buffer state
3533
, flush
3634

@@ -66,12 +64,9 @@ module Data.Binary.Builder (
6664
, putStringUtf8
6765
) where
6866

69-
import qualified Data.ByteString as S
70-
import qualified Data.ByteString.Lazy as L
71-
72-
#if MIN_VERSION_bytestring(0,10,4)
67+
import qualified Data.ByteString as S
68+
import qualified Data.ByteString.Lazy as L
7369
import qualified Data.ByteString.Short as T
74-
#endif
7570

7671
import qualified Data.ByteString.Builder as B
7772
import qualified Data.ByteString.Builder.Extra as B
@@ -127,15 +122,13 @@ fromLazyByteString :: L.ByteString -> Builder
127122
fromLazyByteString = B.lazyByteString
128123
{-# INLINE fromLazyByteString #-}
129124

130-
#if MIN_VERSION_bytestring(0,10,4)
131125
-- | /O(n)./ A builder taking 'T.ShortByteString' and copy it to a Builder,
132126
-- satisfying
133127
--
134128
-- * @'toLazyByteString' ('fromShortByteString' bs) = 'L.fromChunks' ['T.fromShort' bs]
135129
fromShortByteString :: T.ShortByteString -> Builder
136130
fromShortByteString = B.shortByteString
137131
{-# INLINE fromShortByteString #-}
138-
#endif
139132

140133
------------------------------------------------------------------------
141134

src/Data/Binary/Class.hs

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -89,9 +89,7 @@ import Data.Kind (Type)
8989
import GHC.Exts (RuntimeRep(..), VecCount, VecElem)
9090
#endif
9191
import qualified Data.ByteString as B
92-
#if MIN_VERSION_bytestring(0,10,4)
9392
import qualified Data.ByteString.Short as BS
94-
#endif
9593
import qualified Data.Map as Map
9694
import qualified Data.Set as Set
9795
import qualified Data.IntMap as IntMap
@@ -638,12 +636,10 @@ instance Binary ByteString where
638636
get = get >>= getLazyByteString
639637

640638

641-
#if MIN_VERSION_bytestring(0,10,4)
642639
instance Binary BS.ShortByteString where
643640
put bs = put (BS.length bs)
644641
<> putShortByteString bs
645-
get = get >>= fmap BS.toShort . getByteString
646-
#endif
642+
get = get >>= getShortByteString
647643

648644
------------------------------------------------------------------------
649645
-- Maps and Sets

src/Data/Binary/Get.hs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,7 @@ module Data.Binary.Get (
171171
, getLazyByteString
172172
, getLazyByteStringNul
173173
, getRemainingLazyByteString
174+
, getShortByteString
174175

175176
-- ** Decoding Words
176177
, getWord8
@@ -232,6 +233,7 @@ import qualified Data.ByteString as B
232233
import qualified Data.ByteString.Unsafe as B
233234
import qualified Data.ByteString.Lazy as L
234235
import qualified Data.ByteString.Lazy.Internal as L
236+
import Data.ByteString.Short (ShortByteString, toShort)
235237

236238
import Data.Binary.Get.Internal hiding ( Decoder(..), runGetIncremental )
237239
import qualified Data.Binary.Get.Internal as I
@@ -432,6 +434,9 @@ getLazyByteStringNul = withInputChunks () consumeUntilNul L.fromChunks failOnEOF
432434
getRemainingLazyByteString :: Get L.ByteString
433435
getRemainingLazyByteString = withInputChunks () consumeAll L.fromChunks resumeOnEOF
434436

437+
getShortByteString :: Int -> Get ShortByteString
438+
getShortByteString = fmap toShort . getByteString
439+
435440
------------------------------------------------------------------------
436441
-- Primitives
437442

src/Data/Binary/Put.hs

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,7 @@ module Data.Binary.Put (
3838
, putInt8
3939
, putByteString
4040
, putLazyByteString
41-
#if MIN_VERSION_bytestring(0,10,4)
4241
, putShortByteString
43-
#endif
4442

4543
-- * Big-endian primitives
4644
, putWord16be
@@ -88,9 +86,7 @@ import Data.Int
8886
import Data.Word
8987
import qualified Data.ByteString as S
9088
import qualified Data.ByteString.Lazy as L
91-
#if MIN_VERSION_bytestring(0,10,4)
9289
import Data.ByteString.Short
93-
#endif
9490

9591
#ifdef HAS_SEMIGROUP
9692
import Data.Semigroup
@@ -226,12 +222,10 @@ putLazyByteString :: L.ByteString -> Put
226222
putLazyByteString = tell . B.fromLazyByteString
227223
{-# INLINE putLazyByteString #-}
228224

229-
#if MIN_VERSION_bytestring(0,10,4)
230225
-- | Write 'ShortByteString' to the buffer
231226
putShortByteString :: ShortByteString -> Put
232227
putShortByteString = tell . B.fromShortByteString
233228
{-# INLINE putShortByteString #-}
234-
#endif
235229

236230
-- | Write a Word16 in big endian format
237231
putWord16be :: Word16 -> Put

tests/Arbitrary.hs

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,17 +7,13 @@ import Test.QuickCheck
77

88
import qualified Data.ByteString as B
99
import qualified Data.ByteString.Lazy as L
10-
#if MIN_VERSION_bytestring(0,10,4)
1110
import qualified Data.ByteString.Short as S
12-
#endif
1311

1412
instance Arbitrary L.ByteString where
1513
arbitrary = fmap L.fromChunks arbitrary
1614

1715
instance Arbitrary B.ByteString where
1816
arbitrary = B.pack `fmap` arbitrary
1917

20-
#if MIN_VERSION_bytestring(0,10,4)
2118
instance Arbitrary S.ShortByteString where
2219
arbitrary = S.toShort `fmap` arbitrary
23-
#endif

tests/QC.hs

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,7 @@ import Control.Monad (unless, liftM2)
1616
import qualified Data.ByteString as B
1717
import qualified Data.ByteString.Lazy as L
1818
import qualified Data.ByteString.Lazy.Internal as L
19-
#if MIN_VERSION_bytestring(0,10,4)
2019
import Data.ByteString.Short (ShortByteString)
21-
#endif
2220
import Data.Int
2321
import Data.Ratio
2422
import Data.Typeable
@@ -716,20 +714,16 @@ tests =
716714

717715
, test' "B.ByteString" (test :: T B.ByteString) test
718716
, test' "L.ByteString" (test :: T L.ByteString) test
719-
#if MIN_VERSION_bytestring(0,10,4)
720717
, test' "ShortByteString" (test :: T ShortByteString) test
721-
#endif
722718
]
723719

724720
, testGroup "Invariants" $ map (uncurry testProperty)
725721
[ ("B.ByteString invariant", p (prop_invariant :: B B.ByteString ))
726722
, ("[B.ByteString] invariant", p (prop_invariant :: B [B.ByteString] ))
727723
, ("L.ByteString invariant", p (prop_invariant :: B L.ByteString ))
728724
, ("[L.ByteString] invariant", p (prop_invariant :: B [L.ByteString] ))
729-
#if MIN_VERSION_bytestring(0,10,4)
730725
, ("ShortByteString invariant", p (prop_invariant :: B ShortByteString ))
731726
, ("[ShortByteString] invariant", p (prop_invariant :: B [ShortByteString] ))
732-
#endif
733727
]
734728
#ifdef HAS_FIXED_CONSTRUCTOR
735729
, testGroup "Fixed"

0 commit comments

Comments
 (0)