bytebuild 0.3.16.3 → 0.3.17.0
raw patch · 4 files changed
+22/−3 lines, 4 filesPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
+ Data.Bytes.Builder: hPut :: Handle -> Builder -> IO ()
+ Data.Bytes.Builder.Class: instance Data.Bytes.Builder.Class.ToBuilder Foreign.C.Types.CInt
- Data.Bytes.Builder: consLength :: Nat n -> (Int -> Builder n) -> Builder -> Builder
+ Data.Bytes.Builder: consLength :: forall (n :: Nat). Nat n -> (Int -> Builder n) -> Builder -> Builder
- Data.Bytes.Builder: fromBounded :: Nat n -> Builder n -> Builder
+ Data.Bytes.Builder: fromBounded :: forall (n :: Nat). Nat n -> Builder n -> Builder
- Data.Bytes.Builder: putManyConsLength :: (Foldable f, MonadIO m) => Nat n -> (Int -> Builder n) -> Int -> (a -> Builder) -> f a -> (MutableBytes RealWorld -> m b) -> m ()
+ Data.Bytes.Builder: putManyConsLength :: forall f m (n :: Nat) a b. (Foldable f, MonadIO m) => Nat n -> (Int -> Builder n) -> Int -> (a -> Builder) -> f a -> (MutableBytes RealWorld -> m b) -> m ()
- Data.Bytes.Builder.Bounded: append :: Builder m -> Builder n -> Builder (m + n)
+ Data.Bytes.Builder.Bounded: append :: forall (m :: Nat) (n :: Nat). Builder m -> Builder n -> Builder (m + n)
- Data.Bytes.Builder.Bounded: data Builder :: Nat -> Type
+ Data.Bytes.Builder.Bounded: data Builder (a :: Nat)
- Data.Bytes.Builder.Bounded: pasteGrowST :: Nat n -> Builder n -> MutableByteArrayOffset s -> ST s (MutableByteArrayOffset s)
+ Data.Bytes.Builder.Bounded: pasteGrowST :: forall (n :: Nat) s. Nat n -> Builder n -> MutableByteArrayOffset s -> ST s (MutableByteArrayOffset s)
- Data.Bytes.Builder.Bounded: run :: Nat n -> Builder n -> ByteArray
+ Data.Bytes.Builder.Bounded: run :: forall (n :: Nat). Nat n -> Builder n -> ByteArray
- Data.Bytes.Builder.Bounded: runByteString :: Nat n -> Builder n -> ByteString
+ Data.Bytes.Builder.Bounded: runByteString :: forall (n :: Nat). Nat n -> Builder n -> ByteString
- Data.Bytes.Builder.Bounded: substitute :: forall m n. (m :=: n) -> Builder m -> Builder n
+ Data.Bytes.Builder.Bounded: substitute :: forall (m :: Nat) (n :: Nat). (m :=: n) -> Builder m -> Builder n
- Data.Bytes.Builder.Bounded: weaken :: forall m n. (m <= n) -> Builder m -> Builder n
+ Data.Bytes.Builder.Bounded: weaken :: forall (m :: Nat) (n :: Nat). (m <= n) -> Builder m -> Builder n
- Data.Bytes.Builder.Bounded.Unsafe: [Builder] :: (forall s. MutableByteArray# s -> Int# -> State# s -> (# State# s, Int# #)) -> Builder n
+ Data.Bytes.Builder.Bounded.Unsafe: [Builder] :: forall (a :: Nat). (forall s. () => MutableByteArray# s -> Int# -> State# s -> (# State# s, Int# #)) -> Builder a
- Data.Bytes.Builder.Bounded.Unsafe: construct :: (forall s. MutableByteArray s -> Int -> ST s Int) -> Builder n
+ Data.Bytes.Builder.Bounded.Unsafe: construct :: forall (n :: Nat). (forall s. () => MutableByteArray s -> Int -> ST s Int) -> Builder n
- Data.Bytes.Builder.Bounded.Unsafe: newtype Builder :: Nat -> Type
+ Data.Bytes.Builder.Bounded.Unsafe: newtype Builder (a :: Nat)
- Data.Bytes.Builder.Bounded.Unsafe: pasteIO :: Builder n -> MutableByteArray RealWorld -> Int -> IO Int
+ Data.Bytes.Builder.Bounded.Unsafe: pasteIO :: forall (n :: Nat). Builder n -> MutableByteArray RealWorld -> Int -> IO Int
- Data.Bytes.Builder.Bounded.Unsafe: pasteST :: Builder n -> MutableByteArray s -> Int -> ST s Int
+ Data.Bytes.Builder.Bounded.Unsafe: pasteST :: forall (n :: Nat) s. Builder n -> MutableByteArray s -> Int -> ST s Int
- Data.Bytes.Builder.Unsafe: Builder :: (forall s. MutableByteArray# s -> Int# -> Int# -> Commits s -> State# s -> (# State# s, MutableByteArray# s, Int#, Int#, Commits s #)) -> Builder
+ Data.Bytes.Builder.Unsafe: Builder :: (forall s. () => MutableByteArray# s -> Int# -> Int# -> Commits s -> State# s -> (# State# s, MutableByteArray# s, Int#, Int#, Commits s #)) -> Builder
- Data.Bytes.Builder.Unsafe: fromEffect :: Int -> (forall s. MutableByteArray s -> Int -> ST s Int) -> Builder
+ Data.Bytes.Builder.Unsafe: fromEffect :: Int -> (forall s. () => MutableByteArray s -> Int -> ST s Int) -> Builder
Files
- CHANGELOG.md +5/−0
- bytebuild.cabal +3/−3
- src/Data/Bytes/Builder.hs +9/−0
- src/Data/Bytes/Builder/Class.hs +5/−0
CHANGELOG.md view
@@ -5,6 +5,11 @@ `small-bytearray-builder` is now just a compatibility shim to ease the migration process. +## 0.3.17.0 -- 2025-11-17++* Add `hPut` to help with common case of pushing logs to stderr.+* Add `ToBuilder` for `CInt`+ ## 0.3.16.3 * Add support for building with GHC 9.10
bytebuild.cabal view
@@ -1,6 +1,6 @@ cabal-version: 2.2 name: bytebuild-version: 0.3.16.3+version: 0.3.17.0 synopsis: Build byte arrays description: This is similar to the builder facilities provided by@@ -28,7 +28,7 @@ copyright: 2019 Andrew Martin category: Data extra-doc-files: CHANGELOG.md-tested-with: GHC ==9.4.8 || ==9.6.5 || ==9.8.2 || ==9.10.1+tested-with: GHC ==9.6.7 || ==9.8.4 || ==9.10.2 || ==9.12.1 common build-settings default-language: Haskell2010@@ -57,7 +57,7 @@ reexported-modules: Data.Bytes.Chunks build-depends:- , base >=4.17.0.0 && <4.21+ , base >=4.17.0.0 && <4.22 , byteslice >=0.2.6 && <0.3 , bytestring >=0.10.8.2 && <0.13 , haskell-src-meta >=0.8.13
src/Data/Bytes/Builder.hs view
@@ -167,6 +167,9 @@ -- * Rebuild , rebuild+ + -- * IO+ , hPut ) where import Prelude hiding (replicate)@@ -209,6 +212,7 @@ import GHC.ST (ST (ST)) import GHC.Word (Word (W#), Word8 (W8#)) import Numeric.Natural (Natural)+import System.IO (Handle) import qualified Compat as C @@ -217,6 +221,7 @@ import qualified Data.Bytes as Bytes import qualified Data.Bytes.Builder.Bounded as Bounded import qualified Data.Bytes.Builder.Bounded.Unsafe as UnsafeBounded+import qualified Data.Bytes.Chunks as Chunks import qualified Data.Primitive as PM import qualified Data.Text.Short as TS import qualified GHC.Exts as Exts@@ -1557,3 +1562,7 @@ {-# INLINE rebuild #-} rebuild (Builder f) = Builder $ oneShot $ \a -> oneShot $ \b -> oneShot $ \c -> oneShot $ \d -> oneShot $ \e -> f a b c d e++hPut :: Handle -> Builder -> IO ()+{-# NOINLINE hPut #-}+hPut h = Chunks.hPut h . run 256
src/Data/Bytes/Builder/Class.hs view
@@ -1,4 +1,5 @@ {-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE TypeApplications #-} module Data.Bytes.Builder.Class ( ToBuilder (..)@@ -11,6 +12,7 @@ import Data.Primitive.ByteArray (ByteArray) import Data.Text.Short (ShortText) import Data.Word+import Foreign.C.Types (CInt) import qualified Data.Bytes.Builder as Builder @@ -93,3 +95,6 @@ -- | uses @doubleDec@ instance ToBuilder Double where toBuilder = Builder.doubleDec++instance ToBuilder CInt where+ toBuilder = Builder.int64Dec . fromIntegral @CInt @Int64