BSD-3-Clause licensed by Andrew Martin
This version can be pinned in stack with:byteslice-,1700

Module documentation for

This library provides types that allow the user to talk about a slice of a ByteArray or a MutableByteArray. It also offers UnmanagedBytes, which is kind of like a slice into unmanaged memory. However, it is just an address and a length.


Revision history for byteslice – 2020-02-27

  • Add split4.
  • Add equalsCString.
  • Add stripCStringPrefix.
  • Add equalsLatin8.
  • Add emptyPinned.
  • Add concatPinned to Data.Bytes.Chunks.
  • Add any and all. – 2020-01-22

  • Add longestCommonPrefix.
  • Fix broken Ord instance of Bytes. – 2020-01-20

  • Change behavior of split. This function previously had a special case for zero-length byte sequences to mirror the behavior bytestring’s behavior. Now, split returns a singleton list with the empty byte sequence in this case.
  • Add splitNonEmpty so that users who need to take advantage of the non-null guarantee split provides can do so.
  • Add splitU and splitInitU for users who are going to split a byte sequence without and consume the results more than once.
  • Make the C code compile on platforms that do not have rawmemchr.
  • Rename splitOnce to split1.
  • Add split2 and split3.
  • Add equalsLatin{1,2,3,4,5,6,7}
  • Add ifoldl'.
  • Add hGet and hPut.
  • Move Data.Bytes.Chunks from small-bytearray-builder to byteslice.
  • Rename Data.Bytes.Chunks.concat to concatU (the U means unsliced), and add a new concat that returns Bytes.
  • Add fromBytes, fromByteArray, and unsafeCopy to Data.Bytes.Chunks.
  • Add hGetContents to Data.Bytes.Chunks.
  • Add isBytePrefixOf and isByteSuffixOf.
  • Add replicate and replicateU.
  • Add Monoid instance for Bytes.
  • Add singleton, doubleton, tripleton, and their unsliced variants.
  • Rename copy to unsafeCopy.
  • Add fromLatinString.
  • Change the behavior of fromAsciiString to replace out-of-bounds codepoints with NUL.
  • Add unsnoc and uncons. – 2019-11-12

  • Add toLatinString.
  • Add stripPrefix, stripSuffix, stripOptionalPrefix, and stripOptionalSuffix.
  • Add takeWhileEnd and dropWhileEnd.
  • Add count.
  • Add an optimized split function.
  • Add splitInit.
  • Add splitFirst.
  • Add copy.
  • Add pin.
  • Add touch.
  • Add elem.
  • Add unsafeIndex. – 2019-09-15

  • Add isPrefixOf and isSuffixOf.
  • Add foldl, foldr, foldl', and foldr'. – 2019-08-21

  • Add Data.Bytes.Mutable module.
  • Add Data.Bytes module. – 2019-07-03

  • Add record labels for Bytes and MutableBytes
  • Add UnmanagedBytes. This is just an Addr and a length. – 2019-04-30

  • First version.