# 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 believe there's an error in this file please file an
# issue against the rust-lang/cargo repository. If you're
# editing this file be aware that the upstream Cargo.toml
# will likely look very different (and much more reasonable)

[package]
name = "serde_json"
version = "1.0.33"
authors = ["Erick Tryzelaar <erick.tryzelaar@gmail.com>", "David Tolnay <dtolnay@gmail.com>"]
include = ["Cargo.toml", "src/**/*.rs", "README.md", "LICENSE-APACHE", "LICENSE-MIT"]
description = "A JSON serialization file format"
documentation = "http://docs.serde.rs/serde_json/"
readme = "README.md"
keywords = ["json", "serde", "serialization"]
categories = ["encoding"]
license = "MIT/Apache-2.0"
repository = "https://github.com/serde-rs/json"
[package.metadata.docs.rs]
features = ["raw_value"]

[package.metadata.playground]
features = ["raw_value"]
[dependencies.indexmap]
version = "1.0"
optional = true

[dependencies.itoa]
version = "0.4.3"

[dependencies.ryu]
version = "0.2"

[dependencies.serde]
version = "1.0.60"
[dev-dependencies.compiletest_rs]
version = "0.3"
features = ["stable"]

[dev-dependencies.serde_bytes]
version = "0.10"

[dev-dependencies.serde_derive]
version = "1.0"

[features]
arbitrary_precision = []
default = []
preserve_order = ["indexmap"]
raw_value = []
[badges.appveyor]
repository = "serde-rs/json"

[badges.travis-ci]
repository = "serde-rs/json"
