Expand description
A First-In-First-Out queue of DSTs
let mut queue = ::stack_dst::FifoA::<str, [usize; 8]>::new();
queue.push_back_str("Hello");
queue.push_back_str("World");
assert_eq!(queue.pop_front().as_deref(), Some("Hello"));
Implementations
sourceimpl<T: ?Sized, D: DataBuf> FifoA<T, D>
impl<T: ?Sized, D: DataBuf> FifoA<T, D>
sourcepub fn with_buffer(data: D) -> Self
pub fn with_buffer(data: D) -> Self
Construct a new (empty) list using the provided buffer
sourcepub fn push_back<U: Unsize<T>>(&mut self, v: U) -> Result<(), U> where
(U, D::Inner): AlignmentValid,
pub fn push_back<U: Unsize<T>>(&mut self, v: U) -> Result<(), U> where
(U, D::Inner): AlignmentValid,
Push a value at the top of the stack
sourcepub fn push_back_stable<U, F: FnOnce(&U) -> &T>(
&mut self,
v: U,
f: F
) -> Result<(), U> where
(U, D::Inner): AlignmentValid,
pub fn push_back_stable<U, F: FnOnce(&U) -> &T>(
&mut self,
v: U,
f: F
) -> Result<(), U> where
(U, D::Inner): AlignmentValid,
Push a value to the end of the list (without using Unsize
)
sourcepub fn pop_front(&mut self) -> Option<PopHandle<'_, T, D>>
pub fn pop_front(&mut self) -> Option<PopHandle<'_, T, D>>
Remove an item from the front of the list
sourcepub fn iter(&self) -> Iter<'_, T, D>ⓘNotable traits for Iter<'a, T, D>impl<'a, T: 'a + ?Sized, D: 'a + DataBuf> Iterator for Iter<'a, T, D> type Item = &'a T;
pub fn iter(&self) -> Iter<'_, T, D>ⓘNotable traits for Iter<'a, T, D>impl<'a, T: 'a + ?Sized, D: 'a + DataBuf> Iterator for Iter<'a, T, D> type Item = &'a T;
Obtain an immutable iterator (yields references to items, in insertion order)
let mut list = ::stack_dst::FifoA::<str, [usize; 8]>::new();
list.push_back_str("Hello");
list.push_back_str("world");
let mut it = list.iter();
assert_eq!(it.next(), Some("Hello"));
assert_eq!(it.next(), Some("world"));
assert_eq!(it.next(), None);
sourcepub fn iter_mut(&mut self) -> IterMut<'_, T, D>ⓘNotable traits for IterMut<'a, T, D>impl<'a, T: 'a + ?Sized, D: 'a + DataBuf> Iterator for IterMut<'a, T, D> type Item = &'a mut T;
pub fn iter_mut(&mut self) -> IterMut<'_, T, D>ⓘNotable traits for IterMut<'a, T, D>impl<'a, T: 'a + ?Sized, D: 'a + DataBuf> Iterator for IterMut<'a, T, D> type Item = &'a mut T;
Obtain a mutable iterator
let mut list = ::stack_dst::FifoA::<[u8], [usize; 8]>::new();
list.push_copied(&[1,2,3]);
list.push_copied(&[9]);
for v in list.iter_mut() {
v[0] -= 1;
}
let mut it = list.iter();
assert_eq!(it.next(), Some(&[0,2,3][..]));
assert_eq!(it.next(), Some(&[8][..]));
assert_eq!(it.next(), None);
sourceimpl<D: DataBuf, T: Clone> FifoA<[T], D>
impl<D: DataBuf, T: Clone> FifoA<[T], D>
Trait Implementations
Auto Trait Implementations
impl<T: ?Sized, D> RefUnwindSafe for FifoA<T, D> where
D: RefUnwindSafe,
T: RefUnwindSafe,
impl<T, D> !Send for FifoA<T, D>
impl<T, D> !Sync for FifoA<T, D>
impl<T: ?Sized, D> Unpin for FifoA<T, D> where
D: Unpin,
impl<T: ?Sized, D> UnwindSafe for FifoA<T, D> where
D: UnwindSafe,
T: RefUnwindSafe,
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcepub fn borrow_mut(&mut self) -> &mut T
pub fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more