1#![doc = include_str!("../README.md")]
2#![cfg_attr(target_os = "none", no_std)]
3#![cfg_attr(docsrs, feature(doc_cfg, doc_auto_cfg, doc_cfg_hide))]
4#![allow(unused_unsafe)]
5#![warn(missing_docs, rustdoc::broken_intra_doc_links)]
6
7#[cfg(feature = "alloc")]
8extern crate alloc;
9#[macro_use]
10mod macros;
11
12pub use deferred::defer;
13pub mod deferred;
14pub mod error;
15pub mod fmt;
16pub mod io;
17pub mod math;
18pub mod mem;
19pub mod sync;
20
21pub(crate) mod loom;
22
23pub use cordyceps as intrusive;
24pub use mycelium_bitfield as bits;
25
26#[cfg(test)]
27pub(crate) mod test_util {
28 #[cfg(not(loom))]
29 pub(crate) fn trace_init() -> impl Drop {
30 use tracing_subscriber::{prelude::*, EnvFilter};
31 let filter = EnvFilter::from_env("RUST_LOG");
32 tracing_subscriber::fmt()
33 .with_test_writer()
34 .without_time()
35 .with_env_filter(filter)
36 .with_thread_names(true)
37 .set_default()
38 }
39
40 #[cfg(loom)]
41 pub(crate) fn trace_init() -> impl Drop {
42 use tracing_subscriber_03::{prelude::*, EnvFilter};
43 let filter = EnvFilter::from_env("LOOM_LOG");
44 tracing_subscriber_03::fmt()
45 .with_test_writer()
46 .without_time()
47 .with_env_filter(filter)
48 .set_default()
49 }
50}