[package]
edition = "2024"
rust-version = "1.85"
name = "tiger-lib"
version = "1.15.0"
build = "build.rs"
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Library used by the tools ck3-tiger, vic3-tiger, and imperator-tiger. This library holds the bulk of the code for them. It can be built either for ck3-tiger with the feature ck3, or for vic3-tiger with the feature vic3, or for imperator-tiger with the feature imperator, but not both at the same time."
homepage = "https://github.com/amtep/tiger"
readme = "README.md"
license = "GPL-3.0-or-later"
repository = "https://github.com/amtep/tiger"
[features]
ck3 = ["jomini"]
default = ["ck3"]
hoi4 = [
"image/bmp",
"dep:tinybmp",
]
imperator = ["jomini"]
internal_benches = [
"dep:divan",
"dep:toml",
]
jomini = [
"image/png",
"dep:png",
]
vic3 = ["jomini"]
[lib]
name = "tiger_lib"
path = "src/lib.rs"
[[test]]
name = "test"
path = "tests/test.rs"
[[bench]]
name = "internals"
path = "benches/internals.rs"
harness = false
required-features = ["internal_benches"]
[dependencies.ahash]
version = "0.8"
[dependencies.ansiterm]
version = "0.12.2"
[dependencies.anyhow]
version = "1"
[dependencies.as-any]
version = "0.3.0"
[dependencies.atomic_enum]
version = "0.3.0"
[dependencies.bimap]
version = "0.6.3"
[dependencies.bitflags]
version = "2.10"
[dependencies.bitvec]
version = "1.0"
[dependencies.bumpalo]
version = "3.16"
[dependencies.divan]
version = "0.1.21"
optional = true
[dependencies.encoding_rs]
version = "0.8.32"
[dependencies.glob]
version = "0.3.2"
[dependencies.image]
version = "0.25"
features = ["dds"]
optional = true
default-features = false
[dependencies.inventory]
version = "0.3.11"
[dependencies.itertools]
version = "0.14.0"
[dependencies.lalrpop-util]
version = "0.22.0"
features = [
"unicode",
"lexer",
]
[dependencies.murmur3]
version = "0.5.2"
[dependencies.phf]
version = "0.13"
features = ["macros"]
[dependencies.png]
version = "0.18"
optional = true
[dependencies.rayon]
version = "1.7.0"
[dependencies.serde]
version = "1"
features = ["derive"]
[dependencies.serde_json]
version = "1"
[dependencies.strum]
version = "0.27"
features = ["phf"]
[dependencies.strum_macros]
version = "0.27"
[dependencies.thiserror]
version = "2"
[dependencies.tinybmp]
version = "0.6"
optional = true
[dependencies.toml]
version = "0.9.5"
optional = true
[dependencies.unicode-width]
version = "0.2"
[dependencies.walkdir]
version = "2"
[build-dependencies.lalrpop]
version = "0.22.0"
[lints.clippy]
blocks_in_conditions = "allow"
clone_on_ref_ptr = "warn"
dbg_macro = "warn"
decimal_literal_representation = "warn"
enum_glob_use = "allow"
float_cmp_const = "warn"
fn_to_numeric_cast_any = "warn"
format_push_string = "warn"
get_unwrap = "warn"
if_then_some_else_none = "warn"
impl_trait_in_params = "warn"
implicit_clone = "warn"
integer_division = "warn"
large_stack_arrays = "allow"
lossy_float_literal = "warn"
missing_errors_doc = "allow"
mixed_read_write_in_expression = "warn"
module_name_repetitions = "allow"
must_use_candidate = "allow"
mutex_atomic = "warn"
rc_buffer = "warn"
rc_mutex = "warn"
rest_pat_in_fully_bound_structs = "warn"
similar_names = "allow"
string_add = "warn"
struct_excessive_bools = "allow"
todo = "warn"
too_many_lines = "allow"
wildcard_imports = "allow"
[lints.clippy.pedantic]
level = "warn"
priority = -1
[lints.rust]
missing_copy_implementations = "warn"
missing_debug_implementations = "warn"
noop_method_call = "warn"
trivial_casts = "warn"
trivial_numeric_casts = "warn"
[lints.rust.future_incompatible]
level = "warn"
priority = -1
[profile.bench]
debug = 2
[profile.release-lto]
lto = true
codegen-units = 1
inherits = "release"