[package] name = "libloot" description = "A library for accessing LOOT's metadata and sorting functionality." categories = ["games"] version.workspace = true repository.workspace = true edition.workspace = true license.workspace = true [dependencies] crc32fast = "1" esplugin = "6.1" libloadorder = "18.5" log = { version = "0.4.6", features = ["std"] } loot-condition-interpreter = "5" petgraph = ">= 0.6, < 0.9" rayon = "1" regress = ">= 0.2.0, < 0.11" rustc-hash = ">= 1.0.0, < 3" saphyr = ">= 0.0.5, < 0.0.7" unicase = "2.6.0" [target.'cfg(windows)'.dependencies] windows-sys = { version = ">= 0.60.0, < 0.62", features = ["Win32_Storage_FileSystem"] } [dev-dependencies] array-parameterized-test = { path = "./array-parameterized-test", version = "1" } tempfile = "3" [lints] workspace = true [profile.release] debug = "limited" lto = "thin" [workspace] members = ["cpp", "ffi-errors", "nodejs", "array-parameterized-test", "python"] [workspace.package] version = "0.28.2" repository = "https://github.com/loot/libloot.git" edition = "2024" license = "GPL-3.0-or-later" categories = ["games"] # Deny some rustc lints that are allow-by-default. [workspace.lints.rust] ambiguous_negative_literals = "forbid" impl_trait_overcaptures = "forbid" let_underscore_drop = "deny" missing_copy_implementations = "forbid" missing_debug_implementations = "deny" non_ascii_idents = "forbid" redundant_imports = "forbid" redundant_lifetimes = "forbid" trivial_casts = "forbid" trivial_numeric_casts = "forbid" unit_bindings = "forbid" unreachable_pub = "deny" 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 = "forbid" exit = "forbid" exhaustive_enums = "deny" expect_used = "deny" 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 = "forbid" integer_division_remainder_used = "forbid" iter_over_hash_type = "forbid" 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 = "forbid" missing_asserts_for_indexing = "deny" mixed_read_write_in_expression = "forbid" multiple_inherent_impl = "forbid" multiple_unsafe_ops_per_block = "deny" mutex_atomic = "forbid" mutex_integer = "forbid" needless_raw_strings = "forbid" non_ascii_literal = "deny" 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" string_to_string = "forbid" suspicious_xor_used_as_pow = "forbid" tests_outside_test_module = "forbid" todo = "forbid" try_err = "forbid" undocumented_unsafe_blocks = "forbid" 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 = "forbid" verbose_file_reads = "forbid" wildcard_enum_match_arm = "deny"