# 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.60.0"
name = "oneshot"
version = "0.1.11"
authors = ["Linus Färnstrand <faern@faern.net>"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = """
Oneshot spsc channel with (potentially) lock-free non-blocking send, and a receiver supporting
both thread blocking receive operations as well as Future based async polling.
"""
readme = "README.md"
keywords = [
    "oneshot",
    "spsc",
    "async",
    "sync",
    "channel",
]
categories = [
    "asynchronous",
    "concurrency",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/faern/oneshot"

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

[features]
async = []
default = [
    "std",
    "async",
]
std = []

[lib]
name = "oneshot"
path = "src/lib.rs"

[[example]]
name = "recv_before_send"
path = "examples/recv_before_send.rs"

[[example]]
name = "recv_before_send_then_drop_sender"
path = "examples/recv_before_send_then_drop_sender.rs"

[[example]]
name = "recv_ref_before_send"
path = "examples/recv_ref_before_send.rs"

[[example]]
name = "recv_ref_before_send_then_drop_sender"
path = "examples/recv_ref_before_send_then_drop_sender.rs"

[[example]]
name = "recv_timeout_before_send"
path = "examples/recv_timeout_before_send.rs"

[[example]]
name = "recv_timeout_before_send_then_drop_sender"
path = "examples/recv_timeout_before_send_then_drop_sender.rs"

[[example]]
name = "recv_with_dropped_sender"
path = "examples/recv_with_dropped_sender.rs"

[[example]]
name = "send_before_recv"
path = "examples/send_before_recv.rs"

[[example]]
name = "send_then_drop_receiver"
path = "examples/send_then_drop_receiver.rs"

[[example]]
name = "send_with_dropped_receiver"
path = "examples/send_with_dropped_receiver.rs"

[[test]]
name = "assert_mem"
path = "tests/assert_mem.rs"

[[test]]
name = "async"
path = "tests/async.rs"

[[test]]
name = "future"
path = "tests/future.rs"

[[test]]
name = "loom"
path = "tests/loom.rs"

[[test]]
name = "raw"
path = "tests/raw.rs"

[[test]]
name = "sync"
path = "tests/sync.rs"

[[bench]]
name = "benches"
path = "benches/benches.rs"
harness = false

[dev-dependencies.async-std]
version = "1"
features = ["attributes"]

[dev-dependencies.tokio]
version = "1"
features = [
    "rt",
    "rt-multi-thread",
    "macros",
    "time",
]

[target."cfg(criterion)".dev-dependencies.criterion]
version = "0.5.1"

[target."cfg(oneshot_loom)".dependencies.loom]
version = "0.7.2"
features = ["futures"]
optional = true

[lints.rust.unexpected_cfgs]
level = "deny"
priority = 0
check-cfg = [
    "cfg(oneshot_loom)",
    "cfg(oneshot_test_delay)",
    "cfg(criterion)",
]
