maitake-sync 0.2.2

No-std async synchronization primitives from Maitake
Documentation
[package]
name = "maitake-sync"
version = "0.2.2"
authors = [
    "Eliza Weisman <eliza@elizas.website>",
]
description = "No-std async synchronization primitives from Maitake"
repository = "https://github.com/hawkw/mycelium"
documentation = "https://docs.rs/maitake-sync"
homepage = "https://mycelium.elizas.website"
license = "MIT"
readme = "README.md"
keywords = ["async", "no_std", "sync", "mutex", "rwlock"]
categories = [
    "no-std",
    "asynchronous",
    "concurrency"
]
edition = "2021"
rust-version = "1.61.0"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[features]
default = ["alloc"]
alloc = ["cordyceps/alloc"]
std = ["alloc"]
no-cache-pad = ["cordyceps/no-cache-pad"]
core-error = []
critical-section = ["dep:critical-section", "portable-atomic/critical-section"]

[dependencies]
mycelium-bitfield = { version = "0.1.3", path = "../bitfield" }
mutex-traits = "1.0.0"
cordyceps = { version = "0.3.0", path = "../cordyceps" }
critical-section = { version = "1.1", optional = true }
pin-project = "1"
portable-atomic = "1.2"
tracing = { version = "0.1", default-features = false, optional = true }

# this is a normal dependency, rather than a dev dependency, so that
# `maitake-sync` may be used in other crates' loom tests as well (but only when
# the cfg is enabled).
[target.'cfg(loom)'.dependencies]
loom = { version = "0.7", default-features = false }
tracing = { version = "0.1", default-features = false }

[dev-dependencies]
futures-util = "0.3"
futures = "0.3"
tokio-test = "0.4"
tracing = { version = "0.1", default-features = false, features = ["std"] }
tracing-subscriber = { version = "0.3.11", features = ["fmt", "env-filter"] }

[target.'cfg(not(loom))'.dev-dependencies]
proptest = "1"
tokio = { version = "1.32", features = ["rt", "macros"] }

[target.'cfg(loom)'.dev-dependencies]
loom = { version = "0.7", features = ["futures", "checkpoint"] }

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

[lints.rust]
unexpected_cfgs = { level = "warn", check-cfg = ['cfg(loom)', 'cfg(maitake_ultraverbose)'] }