some_executor 0.7.2

A trait for libraries that abstract over any executor
Documentation
# `--all` means *the workspace*, and a path dependency is not automatically a
# member. Without this table `some_executor_macros` would be built (it is a
# dependency) but never linted, tested or documented by `scripts/`, which is
# exactly how a crate's coverage disappears without anything failing.
[workspace]
members = [".", "some_executor_macros"]

[package]
name = "some_executor"
version = "0.7.2"
authors = ["Drew Crawford <drew@sealedabstract.com>"]
edition = "2024"
rust-version = "1.95.0"
description = "A trait for libraries that abstract over any executor"
homepage = "https://sealedabstract.com/code/some_executor"
repository = "https://github.com/drewcrawford/some_executor"
license = "MIT OR Apache-2.0"
keywords = ["async","rumtime","agnostic","trait"]
categories = ["asynchronous","concurrency","wasm","rust-patterns"]
exclude = [".*","art"]

[dependencies]
# Version-locked to this crate: `#[some_executor::main]` expands to paths in
# `some_executor`, so a macro release that disagrees with the library it
# generates calls into is a compile error in someone else's crate. `=` rather
# than `^` for that reason.
some_executor_macros = { path = "some_executor_macros", version = "=0.7.2" }
priority = "0.1.1"
atomic-waker = "1.1.2"
continue = "0.1"
wasm_lite_std = "0.1.1"
logwise = "0.7.0"
exfiltrate = { version = "0.4.0", optional = true }

[features]
default = []
# A bounded live-task registry, exposed through exfiltrate's `snapshot` command.
# Off by default: the registry costs an insertion and a lock on the spawn path,
# which is meant to be cheap, so a release build that does not ask for it pays
# nothing at all.
exfiltrate = ["dep:exfiltrate"]
logwise-diagnostic = []
logwise-forensic = []
logwise-performance = []


[target.'cfg(target_arch="wasm32")'.dependencies]
wasm_lite = "0.1.1"

[dev-dependencies]
# For decoding the structured `snapshot` responses in the provider tests.
rmp-serde = "1.3.1"
exfiltrate_internal = "0.4.0"
# Already a wasm32 dependency above; repeated here without a target so the host
# test build gets it too. `#[wasm_lite_test]` registers with libtest off wasm32
# and drives the browser runner on it, so one attribute covers both targets --
# which is what lets the tests drop `test_executors`. That crate depends back on
# this one, and the resulting cycle had to be papered over with a version range
# at publish time; there is no cycle to paper over now.
# 0.1.2 is the floor for the tests specifically: they need a public
# `wasm_lite_std::block_on` and `#[wasm_lite_test]` on an `async fn`, neither of
# which 0.1.1 has. The library half above still only needs 0.1.1.
wasm_lite = "0.1.2"

# `harness = false`: the macro under test generates `fn main`, which libtest's
# own main would otherwise replace -- and running as a real entry point is the
# whole point of the test.
[[test]]
name = "main_macro"
path = "tests/main_macro.rs"
harness = false