# 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"
rust-version = "1.36"
name = "crossbeam-epoch"
version = "0.9.8"
description = "Epoch-based garbage collection"
homepage = "https://github.com/crossbeam-rs/crossbeam/tree/master/crossbeam-epoch"
keywords = [
    "lock-free",
    "rcu",
    "atomic",
    "garbage",
]
categories = [
    "concurrency",
    "memory-management",
    "no-std",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/crossbeam-rs/crossbeam"

[dependencies.cfg-if]
version = "1"

[dependencies.crossbeam-utils]
version = "0.8.5"
default-features = false

[dependencies.lazy_static]
version = "1.4.0"
optional = true

[dependencies.memoffset]
version = "0.6"

[dependencies.scopeguard]
version = "1.1.0"
default-features = false

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

[dev-dependencies.rustversion]
version = "1"

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

[features]
alloc = []
default = ["std"]
loom = [
    "loom-crate",
    "crossbeam-utils/loom",
]
nightly = ["crossbeam-utils/nightly"]
std = [
    "alloc",
    "crossbeam-utils/std",
    "lazy_static",
]

[target."cfg(crossbeam_loom)".dependencies.loom-crate]
version = "0.5"
optional = true
package = "loom"
