aboutsummaryrefslogtreecommitdiffstats
path: root/src (unfollow)
Commit message (Collapse)AuthorFilesLines
2022-08-10Remove boxes when calling statesLibravatar Titus Wormer1-354/+328
Interestingly, this cuts performance by 20%.
2022-08-10Add `State::Retry`Libravatar Titus Wormer26-213/+205
2022-08-10Rename `State::Fn` to `State::Next`Libravatar Titus Wormer33-426/+411
2022-08-09Refactor to reuse some tokenizer codeLibravatar Titus Wormer1-69/+58
2022-08-09Refactor to share some codeLibravatar Titus Wormer2-148/+99
2022-08-09Add peeking to unindented flow linesLibravatar Titus Wormer3-16/+50
2022-08-09Add support for passing `ok`, `nok` as separate states to attemptsLibravatar Titus Wormer20-376/+509
2022-08-09Rewrite algorithm to not pass around boxed functionsLibravatar Titus Wormer34-1194/+2065
* Pass state names from an enum around instead of boxed functions * Refactor to simplify attempts a lot * Use a subtokenizer for the the `document` content type
2022-08-02Refactor to remove most closuresLibravatar Titus Wormer25-1148/+1285
2022-08-01Fix bug on empty heading (atx)Libravatar Titus Wormer1-29/+31
2022-08-01Add missing docs, refactor some codeLibravatar Titus Wormer5-78/+90
2022-08-01Refactor to pass more `&str`s, work on more bytesLibravatar Titus Wormer2-90/+70
2022-08-01Remove unneeded field in compile contextLibravatar Titus Wormer1-39/+8
2022-08-01Refactor some statesLibravatar Titus Wormer6-28/+32
2022-07-29Refactor to improve statesLibravatar Titus Wormer34-1229/+934
* Remove custom kind wrappers, use plain bytes instead * Remove `Into`s, use the explicit expected types instead * Refactor to use `slice.as_str` in most places * Remove unneeded unique check before adding a definition * Use a shared CDATA prefix in constants * Inline byte checks into matches * Pass bytes back from parser instead of whole parse state * Refactor to work more often on bytes * Rename custom `size` to `len`
2022-07-29Refactor to work on bytes (`u8`)Libravatar Titus Wormer39-528/+576
2022-07-28Refactor to use `debug_assert`Libravatar Titus Wormer5-20/+19
2022-07-28Refactor to work on `char`sLibravatar Titus Wormer44-1036/+1087
Previously, a custom char implementation was used. This was easier to work with, as sometimes “virtual” characters are injected, or characters are ignored. This replaces that with working on actual `char`s. In the hope of in the future working on `u8`s, even. This simplifies the state machine somewhat, as only `\n` is fed, regardless of whether it was a CRLF, CR, or LF. It also feeds `' '` instead of virtual spaces. The BOM, if present, is now available as a `ByteOrderMark` event.
2022-07-26Refactor to drastically improve perf around whitespaceLibravatar Titus Wormer12-238/+263
2022-07-26Refactor to simplify tokenizerLibravatar Titus Wormer3-132/+83
2022-07-26Remove unneeded parameterLibravatar Titus Wormer1-20/+16
2022-07-25Refactor to not pass codes aroundLibravatar Titus Wormer34-993/+938
2022-07-25Refactor to store less dataLibravatar Titus Wormer1-47/+43
2022-07-25Remove no longer needed field in `State::Ok`Libravatar Titus Wormer34-63/+61
2022-07-25Refactor to remove need for cloning codesLibravatar Titus Wormer3-44/+26
2022-07-25Improve performance w/ a single feed loopLibravatar Titus Wormer24-145/+138
2022-07-22Refactor to remove unneeded `Option`Libravatar Titus Wormer1-14/+18
2022-07-22Refactor to use a single shared edit mapLibravatar Titus Wormer10-82/+50
2022-07-22Refactor to reserve some more vecsLibravatar Titus Wormer1-5/+9
2022-07-22Refactor to pass more references aroundLibravatar Titus Wormer1-26/+39
2022-07-22Refactor to remove unneeded tuples in every statesLibravatar Titus Wormer38-919/+684
2022-07-22Refactor to pass ints instead of vecs aroundLibravatar Titus Wormer35-464/+393
2022-07-21Refactor performance around links in subtokenizeLibravatar Titus Wormer1-28/+35
2022-07-21Refactor to improve performance by passing markers aroundLibravatar Titus Wormer3-75/+37
2022-07-21Refactor to move `index` field to `point`Libravatar Titus Wormer11-102/+49
2022-07-21Refactor to move some event fields to `link`Libravatar Titus Wormer8-110/+90
2022-07-20Refactor to share edit mapLibravatar Titus Wormer9-46/+61
2022-07-20Refactor to improve cloning in `document`Libravatar Titus Wormer1-53/+49
2022-07-20Refactor to improve allocation around stringsLibravatar Titus Wormer6-182/+149
2022-07-20Refactor to use less vecs for eventsLibravatar Titus Wormer11-76/+63
2022-07-19Remove a couple of clonesLibravatar Titus Wormer2-7/+6
2022-07-19Refactor to remove cloning in `edit_map`Libravatar Titus Wormer11-45/+47
2022-07-19Use `edit_map` in `subtokenize`Libravatar Titus Wormer3-83/+41
2022-07-19Remove another unneeded `HashMap`Libravatar Titus Wormer2-177/+158
2022-07-19Remove an unneeded `HashMap`Libravatar Titus Wormer3-18/+46
2022-07-19Replace use of `HashSet` with `vec`Libravatar Titus Wormer2-7/+9
2022-07-19Remove unneeded `rust` language flagsLibravatar Titus Wormer1-6/+6
2022-07-19Fix performance around a lot of listsLibravatar Titus Wormer1-16/+33
2022-07-18Refactor to improve performance when constructs are turned offLibravatar Titus Wormer2-49/+73
2022-07-18Change to improve `default_line_ending` apiLibravatar Titus Wormer2-7/+5