1 //! Concurrent queues.
2 //!
3 //! This crate provides concurrent queues that can be shared among threads:
4 //!
5 //! * [`ArrayQueue`], a bounded MPMC queue that allocates a fixed-capacity buffer on construction.
6 //! * [`SegQueue`], an unbounded MPMC queue that allocates small buffers, segments, on demand.
7 
8 #![doc(test(
9     no_crate_inject,
10     attr(
11         deny(warnings, rust_2018_idioms),
12         allow(dead_code, unused_assignments, unused_variables)
13     )
14 ))]
15 #![warn(
16     missing_docs,
17     missing_debug_implementations,
18     rust_2018_idioms,
19     unreachable_pub
20 )]
21 #![cfg_attr(not(feature = "std"), no_std)]
22 
23 #[cfg(all(feature = "alloc", target_has_atomic = "ptr"))]
24 extern crate alloc;
25 
26 #[cfg(all(feature = "alloc", target_has_atomic = "ptr"))]
27 mod array_queue;
28 #[cfg(all(feature = "alloc", target_has_atomic = "ptr"))]
29 mod seg_queue;
30 
31 #[cfg(all(feature = "alloc", target_has_atomic = "ptr"))]
32 pub use crate::{array_queue::ArrayQueue, seg_queue::SegQueue};
33