Skip to main content

luaur_common/methods/
vec_deque_operator_index_vec_deque.rs

1use crate::macros::luau_assert::LUAU_ASSERT;
2use crate::records::vec_deque::VecDeque;
3
4impl<T> VecDeque<T> {
5    #[allow(non_snake_case)]
6    pub fn operator_index_mut(&mut self, pos: usize) -> &mut T {
7        LUAU_ASSERT!(pos < self.queue_size);
8
9        let physical_index = self.logicalToPhysical(pos);
10        unsafe {
11            let ptr = self
12                .buffer
13                .expect("buffer must be allocated if queue_size > 0")
14                .as_ptr();
15            &mut *ptr.add(physical_index)
16        }
17    }
18}