[package]
name = "facet-solver"
version = "0.50.0-rc.3"
edition.workspace = true
rust-version.workspace = true
license.workspace = true
repository.workspace = true
description = "Constraint solver for facet - resolves type shapes from field names"
keywords = ["reflection", "introspection", "facet", "solver", "serde"]
categories = ["development-tools", "rust-patterns"]
homepage = "https://facet.rs"

[package.metadata."docs.rs"]
rustdoc-args = ["--html-in-header", "arborium-header.html"]

[features]
default = ["std", "suggestions"]
std = ["alloc"]
alloc = ["facet-core/alloc", "facet-reflect/alloc"]
suggestions = ["strsim", "alloc"]
tracing = ["facet-reflect/tracing"]

[dependencies]
facet-core = { path = "../facet-core", version = "0.50.0-rc.3", default-features = false }
facet-reflect = { path = "../facet-reflect", version = "0.50.0-rc.3", default-features = false }
strsim = { workspace = true, optional = true }

[dev-dependencies]
divan = { workspace = true }
facet = { path = "../facet", features = ["all-impls", "doc"] }
facet-testhelpers = { path = "../facet-testhelpers" }
json-event-parser = "0.2"

# Required for tests - makes tracing macros resolve
tracing = { workspace = true }

# Enables tracing in dependencies during tests
facet-reflect = { path = "../facet-reflect", features = ["tracing"] }

[[bench]]
name = "solver"
harness = false

[lints]
workspace = true
