mirror of
https://github.com/loot/loot-condition-interpreter.git
synced 2026-07-27 14:16:09 -07:00
The advantages of using the built-in implementation instead of pelite are: - It's much faster on average: for Starfield.exe (~ 100 MB) it is 2.8x faster and 4% slower reading file and product versions respectively, and for sfse_1_15_222.dll it is 3.35x faster and < 1% slower respectively. - It reduces the transitive dependency count by 8 - It uses ~ 700 lines of first-party code that only depends on the standard library, instead of 240715 lines of unaudited third-party code - pelite hasn't had a release in 3 years, and my PR for replacing winapi hasn't had any response in the month and a half it's been open, so the built-in implementation is probably less of a maintenance risk.
128 lines
3.2 KiB
TOML
128 lines
3.2 KiB
TOML
[package]
|
|
name = "loot-condition-interpreter"
|
|
description = "Parse and evaluate LOOT metadata condition strings."
|
|
version.workspace = true
|
|
authors.workspace = true
|
|
repository.workspace = true
|
|
license.workspace = true
|
|
edition.workspace = true
|
|
|
|
[dependencies]
|
|
crc32fast = "1"
|
|
esplugin = "6"
|
|
nom = "8"
|
|
regex = ">= 0.2.7, < 2"
|
|
unicase = "2"
|
|
|
|
[dev-dependencies]
|
|
criterion = ">= 0.1.2, < 0.8"
|
|
tempfile = "3"
|
|
|
|
[lints]
|
|
workspace = true
|
|
|
|
[[bench]]
|
|
name = "eval"
|
|
harness = false
|
|
|
|
[workspace]
|
|
members = ["ffi"]
|
|
|
|
[workspace.package]
|
|
version = "5.3.3"
|
|
authors = ["Oliver Hamlet <oliver@ortham.net>"]
|
|
repository = "https://github.com/loot/loot-condition-interpreter.git"
|
|
license = "MIT"
|
|
edition = "2021"
|
|
|
|
# Deny some rustc lints that are allow-by-default.
|
|
[workspace.lints.rust]
|
|
ambiguous_negative_literals = "forbid"
|
|
impl_trait_overcaptures = "forbid"
|
|
let_underscore_drop = "forbid"
|
|
missing_copy_implementations = "forbid"
|
|
missing_debug_implementations = "forbid"
|
|
non_ascii_idents = "forbid"
|
|
redundant_imports = "forbid"
|
|
redundant_lifetimes = "forbid"
|
|
trivial_casts = "forbid"
|
|
trivial_numeric_casts = "forbid"
|
|
unit_bindings = "forbid"
|
|
unreachable_pub = "forbid"
|
|
unsafe_code = "deny"
|
|
|
|
[workspace.lints.clippy]
|
|
pedantic = { level = "deny", priority = -1 }
|
|
allow_attributes = "deny"
|
|
as_conversions = "deny"
|
|
as_underscore = "forbid"
|
|
assertions_on_result_states = "deny"
|
|
big_endian_bytes = "forbid"
|
|
cfg_not_test = "forbid"
|
|
clone_on_ref_ptr = "forbid"
|
|
create_dir = "forbid"
|
|
dbg_macro = "forbid"
|
|
decimal_literal_representation = "forbid"
|
|
default_numeric_fallback = "forbid"
|
|
doc_include_without_cfg = "forbid"
|
|
empty_drop = "forbid"
|
|
error_impl_error = "deny"
|
|
exit = "forbid"
|
|
exhaustive_enums = "deny"
|
|
expect_used = "forbid"
|
|
filetype_is_file = "deny"
|
|
float_cmp_const = "forbid"
|
|
fn_to_numeric_cast_any = "forbid"
|
|
get_unwrap = "forbid"
|
|
host_endian_bytes = "forbid"
|
|
if_then_some_else_none = "forbid"
|
|
indexing_slicing = "deny"
|
|
infinite_loop = "forbid"
|
|
integer_division = "deny"
|
|
integer_division_remainder_used = "deny"
|
|
iter_over_hash_type = "deny"
|
|
let_underscore_must_use = "forbid"
|
|
lossy_float_literal = "forbid"
|
|
map_err_ignore = "forbid"
|
|
map_with_unused_argument_over_ranges = "forbid"
|
|
mem_forget = "forbid"
|
|
missing_assert_message = "deny"
|
|
missing_asserts_for_indexing = "deny"
|
|
mixed_read_write_in_expression = "forbid"
|
|
multiple_inherent_impl = "deny"
|
|
multiple_unsafe_ops_per_block = "deny"
|
|
mutex_atomic = "forbid"
|
|
mutex_integer = "forbid"
|
|
needless_raw_strings = "forbid"
|
|
non_ascii_literal = "forbid"
|
|
non_zero_suggestions = "forbid"
|
|
panic = "deny"
|
|
panic_in_result_fn = "forbid"
|
|
partial_pub_fields = "forbid"
|
|
pathbuf_init_then_push = "forbid"
|
|
precedence_bits = "forbid"
|
|
print_stderr = "forbid"
|
|
print_stdout = "forbid"
|
|
rc_buffer = "forbid"
|
|
rc_mutex = "forbid"
|
|
redundant_type_annotations = "forbid"
|
|
ref_patterns = "forbid"
|
|
rest_pat_in_fully_bound_structs = "forbid"
|
|
str_to_string = "forbid"
|
|
string_lit_chars_any = "forbid"
|
|
string_slice = "forbid"
|
|
suspicious_xor_used_as_pow = "forbid"
|
|
tests_outside_test_module = "forbid"
|
|
todo = "forbid"
|
|
try_err = "forbid"
|
|
undocumented_unsafe_blocks = "deny"
|
|
unimplemented = "forbid"
|
|
unnecessary_safety_comment = "forbid"
|
|
unneeded_field_pattern = "forbid"
|
|
unreachable = "forbid"
|
|
unused_result_ok = "forbid"
|
|
unwrap_in_result = "forbid"
|
|
unwrap_used = "deny"
|
|
use_debug = "deny"
|
|
verbose_file_reads = "forbid"
|