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-st library.
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
peek and peek' to Data.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.Base128 module for Base-128 encoding.
- Add
Data.Bytes.Parser.Leb128 module for LEB-128 encoding.
Supports signed integers with zig-zag encoding.
- Add
skipWhile to Data.Bytes.Parser.Latin.
- Reexport
endOfInput and isEndOfInput from Latin.
- Add
charInsensitive to ASCII module.
- Correct implementation of
peek and peek'.
0.3.6.0 – 2020-03-04
- Add
char12
- Add
skipTrailedBy2, skipTrailedBy3, and variants
with an unboxed result.
- Add
cstring
- Add
peekRemaining
- Add
measure_ and measure_#, variants of measure
that 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
word256 and word256Array parsers.
- Add
hexFixedWord64.
0.3.4.0 – 2020-02-03
0.3.3.0 – 2020-01-22
- Add
hexWord8, hexWord16, and hexFixedWord8.
0.3.2.0 – 2019-12-27
- Add
parseBytesEither and parseBytesMaybe.
- Add common idioms from other parser libaries. This includes:
satisfy,
satisfyWith, scan, peek, and peek'.
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
skipUntil to Latin.
- Add
char5, char6, char7, char8, char9, char10, and
char11 to Latin.
- Correct the implementation of
takeTrailedBy.
0.3.0.0 – 2019-09-30
- Include the offset into the byte sequence in
Result. Breaking change.
- Rename
hexWord16 to hexFixedWord16. Breaking change.
- Rename
parseBytesST to parseBytesEffectfully. Breaking change.
- Add
hexNibbleLower and tryHexNibbleLower.
- Add
hexNibble and tryHexNibble.
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
annotate and its infix synonym <?>.
0.1.0.0 – 2019-08-22