[package]
name = "facet-value"
version = "0.32.0"
edition.workspace = true
rust-version.workspace = true
license.workspace = true
repository.workspace = true
description = "Memory-efficient dynamic value type for facet, supporting JSON-like data plus bytes"
keywords = ["serialization", "value", "dynamic", "json"]
categories = ["encoding", "data-structures"]

[features]
ci = [] # CI feature
default = ["std"]
std = ["alloc", "dep:indexmap"]
alloc = ["facet-core/alloc", "facet-reflect/alloc", "dep:facet-reflect"]
diagnostics = ["alloc", "dep:miette", "dep:facet-pretty", "dep:syntect", "dep:once_cell"]
bolero-inline-tests = ["alloc"]

[dependencies]
facet-core = { path = "../facet-core", version = "0.32.0", default-features = false }
facet-pretty = { path = "../facet-pretty", version = "0.32.0", optional = true }
facet-reflect = { path = "../facet-reflect", version = "0.32.0", default-features = false, optional = true }
miette = { version = "7", optional = true, default-features = false }
syntect = { version = "5.3", optional = true }
once_cell = { version = "1", optional = true }
indexmap = { version = "2", optional = true }
static_assertions = "1.1"

[dev-dependencies]
facet-assert = { path = "../facet-assert" }
facet-diff = { path = "../facet-diff" }
facet-pretty = { path = "../facet-pretty" }
facet-reflect = { path = "../facet-reflect" }
facet-showcase = { path = "../facet-showcase" }
facet = { path = "../facet" }
facet-testhelpers = { path = "../facet-testhelpers" }
miette = { version = "7", default-features = false }
owo-colors = "4"
bolero = "0.13"
serde_json = "1"
divan = "0.1"
kstring = "2"
indexmap = "2"

[[example]]
name = "from_value_showcase"
required-features = ["diagnostics"]

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