[package]
name = "facet-xml"
version = "0.32.1"
edition = "2024"
rust-version = "1.89.0"
license = "MIT OR Apache-2.0"
repository = "https://github.com/facet-rs/facet"
description = "XML serialization and deserialization for Facet types"
keywords = ["xml", "serialization", "deserialization", "reflection", "facet"]
categories = ["encoding", "parsing", "data-structures"]

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

[features]
ci = [] # CI feature
std = ["alloc", "facet-core/std", "facet-reflect/std"]
alloc = ["facet-core/alloc", "facet-reflect/alloc"]
default = ["std"]
axum = ["std", "dep:axum-core", "dep:http", "dep:http-body-util"]
diff = ["dep:facet-diff-core", "dep:owo-colors"]

[dependencies]
quick-xml = "0.38"
facet = { path = "../facet", version = "0.32.1", default-features = false }
facet-core = { path = "../facet-core", version = "0.32.1", default-features = false }
facet-reflect = { path = "../facet-reflect", version = "0.32.1", default-features = false, features = ["miette"] }
facet-solver = { path = "../facet-solver", version = "0.32.1" }
miette = { version = "7", default-features = false }
log = "0.4"
base64 = "0.22"

# Axum integration (optional)
axum-core = { version = "0.5", optional = true }
http = { version = "1", optional = true }
http-body-util = { version = "0.1", optional = true }

# Diff rendering (optional)
facet-diff-core = { path = "../facet-diff-core", version = "0.32.1", optional = true }
owo-colors = { version = "4", optional = true }

[dev-dependencies]
facet = { path = "../facet" }
facet-core = { path = "../facet-core" }
facet-pretty = { path = "../facet-pretty" }
facet-testhelpers = { path = "../facet-testhelpers" }
facet-showcase = { path = "../facet-showcase" }
miette = { version = "7", default-features = false }
indoc = "2"
cargo-husky = { version = "1.5.0", default-features = false, features = ["user-hooks"] }

[[example]]
name = "xml_showcase"
path = "examples/xml_showcase.rs"
