clt_database/alloc/collections/
vec_deque.rs1use super::{TursoAllocExt, TursoFromIterator, TursoTryWithCapacityExt, TursoVecDequeExt};
2use crate::alloc::{TryReserveError, VecDeque};
3
4const fn vec_deque<T>() -> VecDeque<T> {
5 std::collections::VecDeque::new()
6}
7
8fn vec_deque_with_capacity<T>(capacity: usize) -> VecDeque<T> {
9 std::collections::VecDeque::with_capacity(capacity)
10}
11
12impl<T> TursoAllocExt for VecDeque<T> {
13 #[inline(always)]
14 fn new() -> Self {
15 vec_deque()
16 }
17}
18
19impl<T> TursoVecDequeExt<T> for VecDeque<T> {
20 #[inline(always)]
21 fn try_push_back(&mut self, value: T) -> Result<(), TryReserveError> {
22 self.push_back(value);
23 Ok(())
24 }
25
26 #[inline(always)]
27 fn try_push_front(&mut self, value: T) -> Result<(), TryReserveError> {
28 self.push_front(value);
29 Ok(())
30 }
31}
32
33impl<T> TursoTryWithCapacityExt for VecDeque<T> {
34 #[inline(always)]
35 fn try_with_capacity_ext(capacity: usize) -> Result<Self, TryReserveError> {
36 Ok(vec_deque_with_capacity(capacity))
37 }
38}
39
40impl<T> TursoFromIterator<T> for VecDeque<T> {
41 #[inline(always)]
42 fn try_from_iter<I>(iter: I) -> Result<Self, TryReserveError>
43 where
44 I: IntoIterator<Item = T>,
45 {
46 Ok(iter.into_iter().collect())
47 }
48
49 #[inline(always)]
50 fn try_extend<I>(&mut self, iter: I) -> Result<(), TryReserveError>
51 where
52 I: IntoIterator<Item = T>,
53 {
54 self.extend(iter);
55 Ok(())
56 }
57}