terminal/src/terminal/parser
Leonard Hecker f2386de422
Improve performance and binary size of til::enumset (#11493)
This commit approximately doubles the performance of til::enumset
and reduces it's binary footprint by approximately 1kB.
Most of the binary size can be attributed to exception handling.

Unfortunately this commit removes assertions that the given values are less than
the number of bits in the `underlying_type`. However I believe this to be a good
trade-off as the tests previously only happened at runtime, while tests at
compile time would be highly preferable. Such tests are technically possible,
however MSVC fails to compile (valid) `static_assert`s containing
`static_cast`s over a parameter pack at the time of writing.
With future MSVC versions such checks can be added to this class.

This change was initially discussed in #10492, but was forgotten to
be considered before it was merged. Since the work was already done,
this commit re-introduces the optimization. It's free!

## PR Checklist
* [x] I work here.
* [x] Tests added/passed

## Validation Steps Performed
* Run `printf '\e]8;;http://example.com\e\\This is a link\e]8;;\e\\\n'` in WSL
* A wild dotted line appears ✔️
2021-11-23 18:44:58 +00:00
..
ft_fuzzer Merged PR 5598201: Reflect OS build changes atop a8b404463 2021-01-22 04:57:26 +00:00
ft_fuzzwrapper Change backslashes in include statements to forward slashes (#8205) 2020-11-25 21:02:10 +00:00
lib Unify and clean up the common build properties (#3429) 2019-11-05 14:29:11 -08:00
ut_parser Disable the acceptance of C1 control codes by default (#11690) 2021-11-17 23:40:31 +00:00
ascii.hpp Fix a bunch of spelling errors across the project (#4295) 2020-02-10 20:40:01 +00:00
base64.cpp Improve Base64::Decode performance (#11467) 2021-10-26 21:30:25 +00:00
base64.hpp Improve Base64::Decode performance (#11467) 2021-10-26 21:30:25 +00:00
delfuzzpayload.bat Initial release of the Windows Terminal source code 2019-05-02 15:29:04 -07:00
dirs Initial release of the Windows Terminal source code 2019-05-02 15:29:04 -07:00
InputStateMachineEngine.cpp Pass through double clicks and hover events in Win32 mouse mode (#10138) 2021-05-24 17:24:28 +00:00
InputStateMachineEngine.hpp Pass through double clicks and hover events in Win32 mouse mode (#10138) 2021-05-24 17:24:28 +00:00
IStateMachineEngine.hpp Introduce a mechanism for passing through DCS data strings (#9307) 2021-04-30 19:17:30 +00:00
OutputStateMachineEngine.cpp Disable the acceptance of C1 control codes by default (#11690) 2021-11-17 23:40:31 +00:00
OutputStateMachineEngine.hpp Disable the acceptance of C1 control codes by default (#11690) 2021-11-17 23:40:31 +00:00
parser-common.vcxitems Add support for OSC 52 (copy-to-clipboard) (#5823) 2020-06-30 01:55:40 +00:00
precomp.cpp Initial release of the Windows Terminal source code 2019-05-02 15:29:04 -07:00
precomp.h Initial release of the Windows Terminal source code 2019-05-02 15:29:04 -07:00
runfuzz.bat Initial release of the Windows Terminal source code 2019-05-02 15:29:04 -07:00
runtest.bat Initial release of the Windows Terminal source code 2019-05-02 15:29:04 -07:00
sources.inc Add support for OSC 52 (copy-to-clipboard) (#5823) 2020-06-30 01:55:40 +00:00
stateMachine.cpp Improve performance and binary size of til::enumset (#11493) 2021-11-23 18:44:58 +00:00
stateMachine.hpp Improve performance and binary size of til::enumset (#11493) 2021-11-23 18:44:58 +00:00
telemetry.cpp Disable the acceptance of C1 control codes by default (#11690) 2021-11-17 23:40:31 +00:00
telemetry.hpp Disable the acceptance of C1 control codes by default (#11690) 2021-11-17 23:40:31 +00:00
tracing.cpp Improve parser performance by reducing tracing overhead (#10533) 2021-06-30 02:28:40 +02:00
tracing.hpp Improve parser performance by reducing tracing overhead (#10533) 2021-06-30 02:28:40 +02:00