diff options
-rw-r--r-- | src/linked_list.rs | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/linked_list.rs b/src/linked_list.rs index 6a9836ee..9ea4d19f 100644 --- a/src/linked_list.rs +++ b/src/linked_list.rs @@ -269,6 +269,11 @@ where let len = N::U16; let mut free = 0; + if len == 0 { + list.free = LinkedIndex::none(); + return list; + } + // Initialize indexes while free < len - 1 { unsafe { @@ -558,6 +563,14 @@ mod tests { } #[test] + fn test_zero_size() { + let ll: LinkedList<u32, Max, U0> = LinkedList::new(); + + assert!(ll.is_empty()); + assert!(ll.is_full()); + } + + #[test] fn test_rejected_push() { let mut ll: LinkedList<u32, Max, U3> = LinkedList::new(); ll.push(1).unwrap(); |