# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2021"
rust-version = "1.67"
name = "toml"
version = "0.8.6"
authors = ["Alex Crichton <alex@alexcrichton.com>"]
include = [
    "build.rs",
    "src/**/*",
    "Cargo.toml",
    "Cargo.lock",
    "LICENSE*",
    "README.md",
    "benches/**/*",
    "examples/**/*",
    "tests/**/*",
]
description = """
A native Rust encoder and decoder of TOML-formatted files and streams. Provides
implementations of the standard Serialize/Deserialize traits for TOML data to
facilitate deserializing and serializing Rust structures.
"""
homepage = "https://github.com/toml-rs/toml"
readme = "README.md"
keywords = [
    "encoding",
    "toml",
]
categories = [
    "encoding",
    "parser-implementations",
    "parsing",
    "config",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/toml-rs/toml"

[package.metadata.docs.rs]
all-features = true
rustdoc-args = [
    "--cfg",
    "docsrs",
]

[[package.metadata.release.pre-release-replacements]]
file = "CHANGELOG.md"
min = 1
replace = "{{version}}"
search = "Unreleased"

[[package.metadata.release.pre-release-replacements]]
exactly = 1
file = "CHANGELOG.md"
replace = "...{{tag_name}}"
search = '\.\.\.HEAD'

[[package.metadata.release.pre-release-replacements]]
file = "CHANGELOG.md"
min = 1
replace = "{{date}}"
search = "ReleaseDate"

[[package.metadata.release.pre-release-replacements]]
exactly = 1
file = "CHANGELOG.md"
replace = """
<!-- next-header -->
## [Unreleased] - ReleaseDate
"""
search = "<!-- next-header -->"

[[package.metadata.release.pre-release-replacements]]
exactly = 1
file = "CHANGELOG.md"
replace = """
<!-- next-url -->
[Unreleased]: https://github.com/toml-rs/toml/compare/{{tag_name}}...HEAD"""
search = "<!-- next-url -->"

[[example]]
name = "decode"
required-features = [
    "parse",
    "display",
]

[[example]]
name = "enum_external"
required-features = [
    "parse",
    "display",
]

[[example]]
name = "toml2json"
required-features = [
    "parse",
    "display",
]

[[test]]
name = "decoder_compliance"
harness = false

[[test]]
name = "encoder_compliance"
harness = false

[dependencies.indexmap]
version = "2.0.0"
optional = true

[dependencies.serde]
version = "1.0.145"

[dependencies.serde_spanned]
version = "0.6.4"
features = ["serde"]

[dependencies.toml_datetime]
version = "0.6.5"
features = ["serde"]

[dependencies.toml_edit]
version = "0.20.7"
features = ["serde"]
optional = true

[dev-dependencies.serde]
version = "1.0.160"
features = ["derive"]

[dev-dependencies.serde_json]
version = "1.0.96"

[dev-dependencies.snapbox]
version = "0.4.11"

[dev-dependencies.toml-test-data]
version = "1.4.0"

[dev-dependencies.toml-test-harness]
version = "0.4.8"

[features]
default = [
    "parse",
    "display",
]
display = ["dep:toml_edit"]
parse = ["dep:toml_edit"]
preserve_order = ["indexmap"]
