# Copyright (c) Microsoft Corporation.
# Licensed under the MIT License.

[package]
name = "mesh_channel"
edition.workspace = true
rust-version.workspace = true

[features]
default = ["newchan_mpsc", "newchan_spsc", "newchan_oneshot"]
newchan = ["dep:mesh_channel_core"]
# Use the new channel implementation for MPSC channels.
newchan_mpsc = ["newchan"]
# Use the new channel implementation for SPSC channels.
newchan_spsc = ["newchan"]
# Use the new oneshot implementation
newchan_oneshot = ["newchan"]

[dependencies]
mesh_channel_core = { workspace = true, optional = true }
mesh_node.workspace = true
mesh_protobuf = { workspace = true, features = ["std"] }

futures-core.workspace = true
futures-io.workspace = true
parking_lot.workspace = true
thiserror.workspace = true
tracing.workspace = true

[dev-dependencies]
criterion = { workspace = true, features = ["rayon", "cargo_bench_support", "async", "async_futures"] }
futures.workspace = true
futures-concurrency.workspace = true

pal_async.workspace = true
pal_event.workspace = true
test_with_tracing.workspace = true

[[bench]]
name = "channel"
harness = false

[lints]
workspace = true
