# 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"
name = "embassy-sync"
version = "0.1.0"
description = "no-std, no-alloc synchronization primitives with async support"
readme = "README.md"
categories = [
    "embedded",
    "no-std",
    "concurrency",
    "asynchronous",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/embassy-rs/embassy"

[package.metadata.embassy_docs]
src_base = "https://github.com/embassy-rs/embassy/blob/embassy-sync-v$VERSION/embassy-sync/src/"
src_base_git = "https://github.com/embassy-rs/embassy/blob/$COMMIT/embassy-sync/src/"
features = ["nightly"]
target = "thumbv7em-none-eabi"

[package.metadata.docs.rs]
features = ["nightly"]

[dependencies]
cfg-if = "1.0.0"
critical-section = "1.1"
embedded-io = "0.4.0"
heapless = "0.7.5"

[dependencies.defmt]
version = "0.3"
optional = true

[dependencies.futures-util]
version = "0.3.17"
default-features = false

[dependencies.log]
version = "0.4.14"
optional = true

[dev-dependencies]
futures-test = "0.3.17"
futures-timer = "3.0.2"
static_cell = "1.0"

[dev-dependencies.critical-section]
version = "1.1"
features = ["std"]

[dev-dependencies.futures-executor]
version = "0.3.17"
features = ["thread-pool"]

[dev-dependencies.futures-util]
version = "0.3.17"
features = ["channel"]

[features]
nightly = ["embedded-io/async"]
std = []
