Skip to main content

luaur_common/methods/
vec_deque_pop_back.rs

1use crate::macros::luau_assert::LUAU_ASSERT;
2use crate::records::vec_deque::VecDeque;
3use core::ptr::drop_in_place;
4
5impl<T> VecDeque<T> {
6    pub(crate) fn pop_back_impl(&mut self) {
7        LUAU_ASSERT!(!self.empty());
8
9        self.queue_size -= 1;
10        let next_back = self.logicalToPhysical(self.queue_size);
11
12        unsafe {
13            if let Some(buffer) = self.buffer {
14                drop_in_place(buffer.as_ptr().add(next_back));
15            }
16        }
17    }
18}