[package]
name = "eunoia"
version.workspace = true
edition.workspace = true
rust-version.workspace = true
authors.workspace = true
license.workspace = true
repository.workspace = true
readme.workspace = true
description = "A library for creating area-proportional Euler and Venn diagrams"
keywords = ["euler", "venn", "diagram", "visualization"]
categories = ["graphics", "visualization", "mathematics"]

[lints]
workspace = true

[dependencies]
basin = { version = "0.12", default-features = false, features = ["nalgebra"] }
finitediff = "0.2"
i_overlay = "7"
log = { version = "0.4", features = ["release_max_level_info"] }
nalgebra = "0.34"
num-complex = "0.4"
rand = "0.10"
rayon = { version = "1.10", optional = true }

[target.'cfg(all(target_arch = "wasm32", target_os = "unknown"))'.dependencies]
getrandom = { version = "0.4", features = ["wasm_js"] }

[features]
default = []
parallel = ["dep:rayon"]
# Exposes the shared `test_utils::corpus` fixtures outside `cfg(test)` so
# example binaries (e.g. `examples/quality_report.rs`) can build the same
# spec set the integration tests use. Internal — not part of the public API
# contract.
corpus = []

[dev-dependencies]
criterion = { version = "0.8", features = ["html_reports"] }
env_logger = "0.11"
proptest = "1"

[[bench]]
name = "initial_layout"
harness = false
required-features = ["corpus", "parallel"]

[[bench]]
name = "final_tolerance"
harness = false
required-features = ["corpus", "parallel"]
