Skip to content

Commit 1fac593

Browse files
committed
Added unsafe and docs to Queue::{u8(), u16()}
1 parent 2bfe3fe commit 1fac593

File tree

2 files changed

+17
-9
lines changed

2 files changed

+17
-9
lines changed

src/spsc/mod.rs

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -276,10 +276,10 @@ where
276276
}
277277

278278
macro_rules! impl_ {
279-
($uxx:ident) => {
279+
($uxx:ident, $doc:tt $(,$unsf:ident)?) => {
280280
impl<T, const N: usize> Queue<T, $uxx, N> {
281-
/// Creates an empty queue with a fixed capacity of `N`
282-
pub const fn $uxx() -> Self {
281+
#[doc = $doc]
282+
pub const $($unsf)* fn $uxx() -> Self {
283283
Self {
284284
head: Atomic::new(0),
285285
tail: Atomic::new(0),
@@ -296,7 +296,7 @@ macro_rules! impl_ {
296296
/// ```
297297
/// use heapless::spsc::Queue;
298298
///
299-
/// let mut queue: Queue<u8, _, 235> = Queue::u8();
299+
/// let mut queue: Queue<u8, _, 235> = Queue::new();
300300
/// let (mut producer, mut consumer) = queue.split();
301301
/// assert_eq!(None, consumer.peek());
302302
/// producer.enqueue(1);
@@ -414,9 +414,17 @@ impl<T, const N: usize> Queue<T, usize, N> {
414414
}
415415
}
416416

417-
impl_!(u8);
418-
impl_!(u16);
419-
impl_!(usize);
417+
impl_!(
418+
u8,
419+
"Creates an empty queue with a fixed capacity of `N`. **Safety**: Assumes `N <= u8::MAX`.",
420+
unsafe
421+
);
422+
impl_!(
423+
u16,
424+
"Creates an empty queue with a fixed capacity of `N`. **Safety**: Assumes `N <= u16::MAX`.",
425+
unsafe
426+
);
427+
impl_!(usize, "Creates an empty queue with a fixed capacity of `N`");
420428

421429
impl<T, U, U2, const N: usize, const N2: usize> PartialEq<Queue<T, U2, N2>> for Queue<T, U, N>
422430
where
@@ -633,7 +641,7 @@ mod tests {
633641

634642
#[test]
635643
fn iter_overflow() {
636-
let mut rb: Queue<i32, u8, 4> = Queue::u8();
644+
let mut rb: Queue<i32, u8, 4> = unsafe { Queue::u8() };
637645

638646
rb.enqueue(0).unwrap();
639647
for _ in 0..300 {

src/spsc/split.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ macro_rules! impl_ {
7272
/// ```
7373
/// use heapless::spsc::Queue;
7474
///
75-
/// let mut queue: Queue<u8, _, 235> = Queue::u8();
75+
/// let mut queue: Queue<u8, _, 235> = Queue::new();
7676
/// let (mut producer, mut consumer) = queue.split();
7777
/// assert_eq!(None, consumer.peek());
7878
/// producer.enqueue(1);

0 commit comments

Comments
 (0)