Module arraydeque::behavior [−][src]
Behavior semantics for ArrayDeque
.
ArrayDeque
provides two different behaviors, Saturating
and Wrapping
,
determining whether to remove existing element automatically when pushing
to a full deque.
The behavior is indicated by a marker type parameter of ArrayDeque
,
which defaults to Saturating
.
Saturating
Pushing any element when ArrayDeque
is full will directly return an Err(CapacityError)
containing the element attempting to push, leaving the ArrayDeque
unchanged.
use arraydeque::{ArrayDeque, Saturating, CapacityError}; let mut tester: ArrayDeque<[_; 2], Saturating> = ArrayDeque::new(); assert_eq!(tester.push_back(1), Ok(())); assert_eq!(tester.push_back(2), Ok(())); assert_eq!(tester.push_back(3), Err(CapacityError { element: 3 }));
Wrapping
Pushing any element when ArrayDeque
is full will pop an element at
the other side to spare room.
use arraydeque::{ArrayDeque, Wrapping}; let mut tester: ArrayDeque<[_; 2], Wrapping> = ArrayDeque::new(); assert_eq!(tester.push_back(1), None); assert_eq!(tester.push_back(2), None); assert_eq!(tester.push_back(3), Some(1));
Structs
Saturating | Behavior for |
Wrapping | Behavior for |
Traits
Behavior | Marker trait for indicating behaviors of |