cl_generic_vec/raw/
slice.rs

1use crate::raw::{capacity::fixed_capacity_reserve_error, Storage};
2
3use core::mem::MaybeUninit;
4
5use super::{AllocError, AllocResult};
6
7unsafe impl<T> Storage for [MaybeUninit<T>] {
8    type Item = T;
9
10    fn reserve(&mut self, new_capacity: usize) {
11        if new_capacity > self.len() {
12            fixed_capacity_reserve_error(self.len(), new_capacity)
13        }
14    }
15
16    fn try_reserve(&mut self, capacity: usize) -> AllocResult {
17        if capacity <= self.len() {
18            Ok(())
19        } else {
20            Err(AllocError)
21        }
22    }
23}