2018-02-26 23:10:53 +00:00
|
|
|
loot-condition-interpreter
|
|
|
|
|
==========================
|
|
|
|
|
|
2018-10-21 14:42:50 +01:00
|
|
|
A library for parsing and evaluating LOOT's metadata condition strings. This
|
|
|
|
|
library improves upon LOOT's existing implementation in the following ways:
|
2018-02-26 23:10:53 +00:00
|
|
|
|
2018-10-06 16:00:47 +01:00
|
|
|
- Condition expressions are parsed into an intermediate representation instead
|
|
|
|
|
of being stringly typed, which allows parsing and evaluation to be separated.
|
|
|
|
|
- State is uncoupled by necessity, and Rusts's concurrency guarantees mean it
|
|
|
|
|
can be accessed more efficiently.
|
|
|
|
|
- Results are cached with more granularity, per function instead of per
|
|
|
|
|
expression, improving performance when expressions are not entirely different.
|
|
|
|
|
- Result caching is guided by benchmarks, so results aren't cached
|
|
|
|
|
unnecessarily.
|
|
|
|
|
- Reading executable versions doesn't involve calling out to the shell and
|
|
|
|
|
piping several commands together when on Linux.
|
2018-02-26 23:10:53 +00:00
|
|
|
|
2018-10-06 16:00:47 +01:00
|
|
|
The code is also not as much of a mess, it's got benchmarks, and probably better
|
|
|
|
|
test coverage.
|
|
|
|
|
|
2018-10-01 20:44:48 +01:00
|
|
|
The tests need the [testing-plugins](https://github.com/WrinklyNinja/testing-plugins)
|
2018-10-05 19:52:51 +01:00
|
|
|
and the [LOOT API v0.13.8](https://github.com/loot/loot-api/releases/tag/0.13.8)
|
|
|
|
|
Windows archives to be extracted and present in the repo root.
|