# 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 = "2018"
name = "indexmap"
version = "1.8.2"
authors = [
    "bluss",
    "Josh Stone <cuviper@gmail.com>",
]
build = "build.rs"
description = """
A hash table with consistent order and fast iteration.

The indexmap is a hash table where the iteration order of the key-value
pairs is independent of the hash values of the keys. It has the usual
hash table functionality, it preserves insertion order except after
removals, and it allows lookup of its elements by either hash table key
or numerical index. A corresponding hash set type is also provided.

This crate was initially published under the name ordermap, but it was renamed to
indexmap.
"""
documentation = "https://docs.rs/indexmap/"
keywords = [
    "hashmap",
    "no_std",
]
categories = [
    "data-structures",
    "no-std",
]
license = "Apache-2.0/MIT"
repository = "https://github.com/bluss/indexmap"

[package.metadata.release]
no-dev-version = true
tag-name = "{{version}}"

[package.metadata.docs.rs]
features = [
    "serde-1",
    "rayon",
]

[profile.bench]
debug = true

[lib]
bench = false

[dependencies.hashbrown]
version = "0.11"
features = ["raw"]
default-features = false

[dependencies.rayon]
version = "1.4.1"
optional = true

[dependencies.rustc-rayon]
version = "0.4"
optional = true

[dependencies.serde]
version = "1.0"
optional = true
default-features = false

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

[dev-dependencies.fxhash]
version = "0.2.1"

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

[dev-dependencies.lazy_static]
version = "1.3"

[dev-dependencies.quickcheck]
version = "1.0"
default-features = false

[dev-dependencies.rand]
version = "0.8"
features = ["small_rng"]

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

[build-dependencies.autocfg]
version = "1"

[features]
serde-1 = ["serde"]
std = []
test_debug = []
test_low_transition_point = []
