luaur_common/methods/
vec_deque_vec_deque_vec_deque_alt_g.rs1use crate::records::vec_deque::VecDeque;
2use core::ptr;
3
4impl<T: Clone> From<&[T]> for VecDeque<T> {
5 #[allow(non_snake_case)]
6 fn from(init: &[T]) -> Self {
7 let mut dq = VecDeque::<T>::new();
8 if !init.is_empty() {
9 let buf = dq.allocate(init.len());
10 dq.buffer = Some(buf);
11 dq.buffer_capacity = init.len();
12 dq.queue_size = init.len();
13 for (i, item) in init.iter().enumerate() {
14 unsafe {
15 ptr::write(buf.as_ptr().add(i), item.clone());
16 }
17 }
18 }
19 dq
20 }
21}