|
43 | 43 | //!
|
44 | 44 | //! List of currently implemented data structures:
|
45 | 45 | # -- like `std::sync::Arc` but backed by a lock-free memory pool rather than `#[global_allocator]`" |
| 46 | + any( |
| 47 | + arm_llsc, |
| 48 | + all( |
| 49 | + target_pointer_width = "32", |
| 50 | + any(target_has_atomic = "64", feature = "portable-atomic") |
| 51 | + ), |
| 52 | + all( |
| 53 | + target_pointer_width = "64", |
| 54 | + any( |
| 55 | + all(target_has_atomic = "128", feature = "nightly"), |
| 56 | + feature = "portable-atomic" |
| 57 | + ) |
| 58 | + ) |
| 59 | + ), |
| 60 | + doc = "- [Arc][pool::arc::Arc] -- like `std::sync::Arc` but backed by a lock-free memory pool rather than [global_allocator]" |
| 61 | +)] |
| 62 | +#![cfg_attr( |
| 63 | + any( |
| 64 | + arm_llsc, |
| 65 | + all( |
| 66 | + target_pointer_width = "32", |
| 67 | + any(target_has_atomic = "64", feature = "portable-atomic") |
| 68 | + ), |
| 69 | + all( |
| 70 | + target_pointer_width = "64", |
| 71 | + any( |
| 72 | + all(target_has_atomic = "128", feature = "nightly"), |
| 73 | + feature = "portable-atomic" |
| 74 | + ) |
| 75 | + ) |
| 76 | + ), |
| 77 | + doc = "- [Box][pool::boxed::Box] -- like `std::boxed::Box` but backed by a lock-free memory pool rather than [global_allocator]" |
48 | 78 | )]
|
49 | 79 | # -- like `std::boxed::Box` but backed by a lock-free memory pool rather than `#[global_allocator]`" |
| 80 | + any( |
| 81 | + arm_llsc, |
| 82 | + all( |
| 83 | + target_pointer_width = "32", |
| 84 | + any(target_has_atomic = "64", feature = "portable-atomic") |
| 85 | + ), |
| 86 | + all( |
| 87 | + target_pointer_width = "64", |
| 88 | + any( |
| 89 | + all(target_has_atomic = "128", feature = "nightly"), |
| 90 | + feature = "portable-atomic" |
| 91 | + ) |
| 92 | + ) |
| 93 | + ), |
| 94 | + doc = "- [Arc][pool::arc::Arc] -- like `std::sync::Arc` but backed by a lock-free memory pool rather than [global_allocator]" |
52 | 95 | )]
|
53 |
| -//! - [`BinaryHeap`] -- priority queue |
54 |
| -//! - [`Deque`] -- double-ended queue |
55 |
| -//! - [`HistoryBuffer`] -- similar to a write-only ring buffer |
56 |
| -//! - [`IndexMap`] -- hash table |
57 |
| -//! - [`IndexSet`] -- hash set |
58 |
| -//! - [`LinearMap`] |
59 | 96 | # -- objects managed by an object pool" |
| 97 | + any( |
| 98 | + arm_llsc, |
| 99 | + all( |
| 100 | + target_pointer_width = "32", |
| 101 | + any(target_has_atomic = "64", feature = "portable-atomic") |
| 102 | + ), |
| 103 | + all( |
| 104 | + target_pointer_width = "64", |
| 105 | + any( |
| 106 | + all(target_has_atomic = "128", feature = "nightly"), |
| 107 | + feature = "portable-atomic" |
| 108 | + ) |
| 109 | + ) |
| 110 | + ), |
| 111 | + doc = "- [Object](pool::object::Object) -- objects managed by an object pool" |
62 | 112 | )]
|
63 |
| -//! - [`sorted_linked_list::SortedLinkedList`] |
64 |
| -//! - [`String`] |
65 |
| -//! - [`Vec`] |
| 113 | +//! - [BinaryHeap] -- priority queue |
| 114 | +//! - [Deque] -- double-ended queue |
| 115 | +//! - [HistoryBuffer] -- similar to a write-only ring buffer |
| 116 | +//! - [IndexMap] -- hash table |
| 117 | +//! - [IndexSet] -- hash set |
| 118 | +//! - [LinearMap] |
| 119 | +//! - [sorted_linked_list::SortedLinkedList] |
| 120 | +//! - [String] |
| 121 | +//! - [Vec] |
66 | 122 | //! - [`mpmc::Q*`](mpmc) -- multiple producer multiple consumer lock-free queue
|
67 |
| -//! - [`spsc::Queue`] -- single producer single consumer lock-free queue |
| 123 | +//! - [spsc] and [spsc::Queue] -- single producer single consumer lock-free queue |
68 | 124 | //!
|
69 | 125 | //! # Minimum Supported Rust Version (MSRV)
|
70 | 126 | //!
|
|
0 commit comments