BSD-3-Clause licensed by Andrew Martin
This version can be pinned in stack with:bytesmith-0.3.13.0@sha256:fe7850c9ec090305b0d670e8f144b6a7e1b78c01a8a8a492cc7825b93060b8f1,2263
Module documentation for 0.3.13.0
Parse bytes as fast as possible. This is a nonresumable parser
that aggresively uses UnboxedSums to avoid performing any
allocations.
Revision history for bytesmith
0.3.13.0 – 2025-07-11
- Add hexFixedWord16#
- Drop support for base < 4.18, clean up CPP
- Add more levity-monomorphized variants of bind, pure, and fail
0.3.11.1 – 2024-02-28
- Update package metadata.
- Remove dependency on run-stlibrary.
0.3.11.0 – 2024-01-05
- Add Data.Bytes.Parser.Latin.hexWord32.
- Add Data.Bytes.Parser.Latin.hexFixedWord(128|256).
- Add Data.Bytes.Parser.takeN.
0.3.10.0 – 2023-07-25
- Add mapErrorEffectfully.
- Correct the implementation of satisfy.
- Add takeUpTo.
0.3.9.1 – 2022-12-06
0.3.9.0 – 2022-07-14
0.3.8.0 – 2021-10-11
- Add peekandpeek'toData.Bytes.Parser.Latin.
- Add inline pragmas to most functions to prevent cost centers.
- Add support for WordRep-to-LiftedRep in Rebindable module.
- Allow building with newer Contiguous.
- Export uneffectful.
0.3.7.0 – 2020-07-27
- Add Data.Bytes.Parser.Base128module for Base-128 encoding.
- Add Data.Bytes.Parser.Leb128module for LEB-128 encoding.
Supports signed integers with zig-zag encoding.
- Add skipWhiletoData.Bytes.Parser.Latin.
- Reexport endOfInputandisEndOfInputfromLatin.
- Add charInsensitiveto ASCII module.
- Correct implementation of peekandpeek'.
0.3.6.0 – 2020-03-04
- Add char12
- Add skipTrailedBy2,skipTrailedBy3, and variants
with an unboxed result.
- Add cstring
- Add peekRemaining
- Add measure_andmeasure_#, variants ofmeasurethat only give the byte count.
- Add Data.Bytes.Parser.Rebindable, the ultimate hack.
- Add Data.Bytes.Latin.takeTrailedBy
0.3.5.0 – 2020-02-10
- Add big-endian and little-endian word256andword256Arrayparsers.
- Add hexFixedWord64.
0.3.4.0 – 2020-02-03
0.3.3.0 – 2020-01-22
- Add hexWord8,hexWord16, andhexFixedWord8.
0.3.2.0 – 2019-12-27
- Add parseBytesEitherandparseBytesMaybe.
- Add common idioms from other parser libaries. This includes: satisfy,satisfyWith,scan,peek, andpeek'.
0.3.1.0 – 2019-11-12
- Add big-endian and little-endian parsers for Word128.
- Add a module for little-endian word parsers. This compliments the
existing big-endian module.
- Add functions for parsing arrays of big/little endian words of
various sizes.
- Add skipUntiltoLatin.
- Add char5,char6,char7,char8,char9,char10, andchar11toLatin.
- Correct the implementation of takeTrailedBy.
0.3.0.0 – 2019-09-30
- Include the offset into the byte sequence in Result. Breaking change.
- Rename hexWord16tohexFixedWord16. Breaking change.
- Rename parseBytesSTtoparseBytesEffectfully. Breaking change.
- Add hexNibbleLowerandtryHexNibbleLower.
- Add hexNibbleandtryHexNibble.
0.2.0.1 – 2019-09-24
- Correct an overflow-detection mistake in the implementation
of machine-word parsers.
0.2.0.0 – 2019-09-24
- Add big-endian word parsers.
- Redo module structure so that encoding-specific functions each
live in their own module.
- Add a lot more functions and attempt to make naming somewhat
consistent.
- Add delimit.
- Add replicate.
- Add annotateand its infix synonym<?>.
0.1.0.0 – 2019-08-22