pub type Vec<T> = NonEmpty<Vec<T>>;
Expand description
A non-empty, heap allocated Vec.
Aliased Type§
struct Vec<T> { /* private fields */ }
Implementations§
source§impl<T> Vec<T>
impl<T> Vec<T>
Vec
methods
sourcepub unsafe fn new_unchecked(src: Vec<T>) -> Self
pub unsafe fn new_unchecked(src: Vec<T>) -> Self
sourcepub unsafe fn new_ref_unchecked(src: &Vec<T>) -> &Self
pub unsafe fn new_ref_unchecked(src: &Vec<T>) -> &Self
sourcepub unsafe fn new_mut_unchecked(src: &mut Vec<T>) -> &mut Self
pub unsafe fn new_mut_unchecked(src: &mut Vec<T>) -> &mut Self
sourcepub fn new(src: Vec<T>) -> Result<Self, Vec<T>>
pub fn new(src: Vec<T>) -> Result<Self, Vec<T>>
Create a new NonEmpty
heap-allocated vec, returning the original
allocation if it was empty.
sourcepub fn of_with_capacity(item: T, capacity: usize) -> Self
pub fn of_with_capacity(item: T, capacity: usize) -> Self
Create a NonEmpty
heap-allocated vec, of a single element, with
capacity for capacity
elements without (re)-allocating.
sourcepub fn of_extending<A>(first: T, rest: impl IntoIterator<Item = A>) -> Selfwhere
Self: Extend<A>,
pub fn of_extending<A>(first: T, rest: impl IntoIterator<Item = A>) -> Selfwhere
Self: Extend<A>,
Creating a NonEmpty
heap-allocated vec where the first element is known.
This is an convenience method, equivalent to
let mut it = nunny::vec!["first"];
it.extend(["this", "is", "the", "rest"]);
sourcepub fn filled(value: T, len: NonZeroUsize) -> Selfwhere
T: Clone,
pub fn filled(value: T, len: NonZeroUsize) -> Selfwhere
T: Clone,
Create a NonEmpty
heap-allocated vec with len
items, filled with
Clone
s of the given value
.
See also Self::filled_with
.
sourcepub fn filled_with<F>(f: F, len: NonZeroUsize) -> Selfwhere
F: FnMut() -> T,
pub fn filled_with<F>(f: F, len: NonZeroUsize) -> Selfwhere
F: FnMut() -> T,
Create a NonEmpty
heap-allocated vec with len
items, filled with
values returned from repeating the closure f
.
See also Self::filled
.
sourcepub fn as_vec(&self) -> &Vec<T>
pub fn as_vec(&self) -> &Vec<T>
Returns a std::vec::Vec
.
sourcepub unsafe fn as_mut_vec(&mut self) -> &mut Vec<T>
pub unsafe fn as_mut_vec(&mut self) -> &mut Vec<T>
sourcepub fn into_vec(self) -> Vec<T>
pub fn into_vec(self) -> Vec<T>
Returns a std::vec::Vec
.
sourcepub fn as_slice_ne(&self) -> &Slice<T>
pub fn as_slice_ne(&self) -> &Slice<T>
Returns a NonEmpty
slice.
sourcepub fn as_mut_slice_ne(&mut self) -> &mut Slice<T>
pub fn as_mut_slice_ne(&mut self) -> &mut Slice<T>
Returns a NonEmpty
slice.
sourcepub fn capacity(&self) -> NonZeroUsize
pub fn capacity(&self) -> NonZeroUsize
Returns the known non-zero length.
sourcepub fn reserve_exact(&mut self, additional: usize)
pub fn reserve_exact(&mut self, additional: usize)
See reserve_exact
.
sourcepub fn try_reserve(&mut self, additional: usize) -> Result<(), TryReserveError>
pub fn try_reserve(&mut self, additional: usize) -> Result<(), TryReserveError>
See try_reserve
.
sourcepub fn try_reserve_exact(
&mut self,
additional: usize,
) -> Result<(), TryReserveError>
pub fn try_reserve_exact( &mut self, additional: usize, ) -> Result<(), TryReserveError>
See try_reserve_exact
.
sourcepub fn shrink_to_fit(&mut self)
pub fn shrink_to_fit(&mut self)
See shrink_to_fit
.
sourcepub fn into_boxed_slice(self) -> Box<Slice<T>>
pub fn into_boxed_slice(self) -> Box<Slice<T>>
Return a NonEmpty
boxed slice.
sourcepub fn truncate(&mut self, len: NonZeroUsize)
pub fn truncate(&mut self, len: NonZeroUsize)
Shortens the vector to a guaranteed-nonzero length
See truncate
.
sourcepub unsafe fn set_len(&mut self, new_len: NonZeroUsize)
pub unsafe fn set_len(&mut self, new_len: NonZeroUsize)
sourcepub fn dedup_by_key<F, K>(&mut self, key: F)
pub fn dedup_by_key<F, K>(&mut self, key: F)
See dedup_by_key
.
sourcepub fn resize_with<F>(&mut self, new_len: NonZeroUsize, f: F)where
F: FnMut() -> T,
pub fn resize_with<F>(&mut self, new_len: NonZeroUsize, f: F)where
F: FnMut() -> T,
See resize_with
.
sourcepub fn spare_capacity_mut(&mut self) -> &mut [MaybeUninit<T>]
pub fn spare_capacity_mut(&mut self) -> &mut [MaybeUninit<T>]
See spare_capacity_mut
.
Methods from Deref<Target = Slice<T>>§
sourcepub fn each_ref(&self) -> Array<&T, N>
pub fn each_ref(&self) -> Array<&T, N>
Borrows each element and returns a NonEmpty
array of references with the same size as self.
sourcepub fn each_mut(&mut self) -> Array<&mut T, N>
pub fn each_mut(&mut self) -> Array<&mut T, N>
Borrows each element mutably and returns a NonEmpty
array of mutable references with the same size as self.
sourcepub fn as_slice_ne(&self) -> &Slice<T>
pub fn as_slice_ne(&self) -> &Slice<T>
Returns a NonEmpty
slice.
sourcepub fn as_mut_slice_ne(&mut self) -> &mut Slice<T>
pub fn as_mut_slice_ne(&mut self) -> &mut Slice<T>
Returns a NonEmpty
slice.
sourcepub fn as_array(&self) -> &[T; N]
pub fn as_array(&self) -> &[T; N]
Returns a primitive array
.
sourcepub fn as_mut_array(&mut self) -> &mut [T; N]
pub fn as_mut_array(&mut self) -> &mut [T; N]
Returns a primitive array
.
sourcepub fn peek(&mut self) -> &I::Item
pub fn peek(&mut self) -> &I::Item
Peek this NonEmpty
iterator, without advancing it.
See Self::peekable
.
sourcepub fn peek_mut(&mut self) -> &mut I::Item
pub fn peek_mut(&mut self) -> &mut I::Item
Peek and modify this NonEmpty
iterator, without advancing it.
See Self::peekable
.
sourcepub fn as_slice(&self) -> &[T]
pub fn as_slice(&self) -> &[T]
Returns a primitive slice
.
sourcepub fn as_mut_slice(&mut self) -> &mut [T]
pub fn as_mut_slice(&mut self) -> &mut [T]
Returns a primitive slice
.
sourcepub fn len_ne(&self) -> NonZeroUsize
pub fn len_ne(&self) -> NonZeroUsize
Returns the known non-zero length.
sourcepub fn split_first(&self) -> (&T, &[T])
pub fn split_first(&self) -> (&T, &[T])
Returns the first element, guaranteed, and the rest of the elements.
sourcepub fn split_last(&self) -> (&T, &[T])
pub fn split_last(&self) -> (&T, &[T])
Returns the last element, guaranteed, and the rest of the elements.
sourcepub fn split_first_mut(&mut self) -> (&mut T, &mut [T])
pub fn split_first_mut(&mut self) -> (&mut T, &mut [T])
Returns the first element, guaranteed, and the rest of the elements.
sourcepub fn split_last_mut(&mut self) -> (&mut T, &mut [T])
pub fn split_last_mut(&mut self) -> (&mut T, &mut [T])
Returns the last element, guaranteed, and the rest of the elements.
pub fn iter_ne(&self) -> NonEmpty<Iter<'_, T>>
pub fn iter_mut_ne(&mut self) -> NonEmpty<IterMut<'_, T>>
sourcepub fn as_vec(&self) -> &Vec<T>
pub fn as_vec(&self) -> &Vec<T>
Returns a std::vec::Vec
.
sourcepub unsafe fn as_mut_vec(&mut self) -> &mut Vec<T>
pub unsafe fn as_mut_vec(&mut self) -> &mut Vec<T>
sourcepub fn as_slice_ne(&self) -> &Slice<T>
pub fn as_slice_ne(&self) -> &Slice<T>
Returns a NonEmpty
slice.
sourcepub fn as_mut_slice_ne(&mut self) -> &mut Slice<T>
pub fn as_mut_slice_ne(&mut self) -> &mut Slice<T>
Returns a NonEmpty
slice.
sourcepub fn capacity(&self) -> NonZeroUsize
pub fn capacity(&self) -> NonZeroUsize
Returns the known non-zero length.
sourcepub fn reserve_exact(&mut self, additional: usize)
pub fn reserve_exact(&mut self, additional: usize)
See reserve_exact
.
sourcepub fn try_reserve(&mut self, additional: usize) -> Result<(), TryReserveError>
pub fn try_reserve(&mut self, additional: usize) -> Result<(), TryReserveError>
See try_reserve
.
sourcepub fn try_reserve_exact(
&mut self,
additional: usize,
) -> Result<(), TryReserveError>
pub fn try_reserve_exact( &mut self, additional: usize, ) -> Result<(), TryReserveError>
See try_reserve_exact
.
sourcepub fn shrink_to_fit(&mut self)
pub fn shrink_to_fit(&mut self)
See shrink_to_fit
.
sourcepub fn truncate(&mut self, len: NonZeroUsize)
pub fn truncate(&mut self, len: NonZeroUsize)
Shortens the vector to a guaranteed-nonzero length
See truncate
.
sourcepub unsafe fn set_len(&mut self, new_len: NonZeroUsize)
pub unsafe fn set_len(&mut self, new_len: NonZeroUsize)
sourcepub fn dedup_by_key<F, K>(&mut self, key: F)
pub fn dedup_by_key<F, K>(&mut self, key: F)
See dedup_by_key
.
sourcepub fn resize_with<F>(&mut self, new_len: NonZeroUsize, f: F)where
F: FnMut() -> T,
pub fn resize_with<F>(&mut self, new_len: NonZeroUsize, f: F)where
F: FnMut() -> T,
See resize_with
.
sourcepub fn spare_capacity_mut(&mut self) -> &mut [MaybeUninit<T>]
pub fn spare_capacity_mut(&mut self) -> &mut [MaybeUninit<T>]
See spare_capacity_mut
.
Trait Implementations§
source§impl<T> BorrowMut<[T]> for Vec<T>
impl<T> BorrowMut<[T]> for Vec<T>
source§fn borrow_mut(&mut self) -> &mut [T]
fn borrow_mut(&mut self) -> &mut [T]
source§impl<T> BorrowMut<NonEmpty<[T]>> for Vec<T>
impl<T> BorrowMut<NonEmpty<[T]>> for Vec<T>
source§fn borrow_mut(&mut self) -> &mut Slice<T>
fn borrow_mut(&mut self) -> &mut Slice<T>
source§impl<'de, T> Deserialize<'de> for Vec<T>where
T: Deserialize<'de>,
impl<'de, T> Deserialize<'de> for Vec<T>where
T: Deserialize<'de>,
source§fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
source§impl<'a, T> Extend<&'a T> for Vec<T>where
T: Copy + 'a,
impl<'a, T> Extend<&'a T> for Vec<T>where
T: Copy + 'a,
source§fn extend<II: IntoIterator<Item = &'a T>>(&mut self, iter: II)
fn extend<II: IntoIterator<Item = &'a T>>(&mut self, iter: II)
source§fn extend_one(&mut self, item: A)
fn extend_one(&mut self, item: A)
extend_one
)source§fn extend_reserve(&mut self, additional: usize)
fn extend_reserve(&mut self, additional: usize)
extend_one
)source§impl<T> Extend<T> for Vec<T>
impl<T> Extend<T> for Vec<T>
source§fn extend<II: IntoIterator<Item = T>>(&mut self, iter: II)
fn extend<II: IntoIterator<Item = T>>(&mut self, iter: II)
source§fn extend_one(&mut self, item: A)
fn extend_one(&mut self, item: A)
extend_one
)source§fn extend_reserve(&mut self, additional: usize)
fn extend_reserve(&mut self, additional: usize)
extend_one
)source§impl<'a, T> IntoIterator for &'a Vec<T>
impl<'a, T> IntoIterator for &'a Vec<T>
source§impl<'a, T> IntoIterator for &'a mut Vec<T>
impl<'a, T> IntoIterator for &'a mut Vec<T>
source§impl<T> IntoIterator for Vec<T>
impl<T> IntoIterator for Vec<T>
source§impl<T> JsonSchema for Vec<T>where
T: JsonSchema,
impl<T> JsonSchema for Vec<T>where
T: JsonSchema,
source§fn schema_name() -> String
fn schema_name() -> String
source§fn json_schema(gen: &mut SchemaGenerator) -> Schema
fn json_schema(gen: &mut SchemaGenerator) -> Schema
source§fn is_referenceable() -> bool
fn is_referenceable() -> bool
$ref
keyword. Read moresource§impl<T> Ord for Vec<T>where
T: Ord,
impl<T> Ord for Vec<T>where
T: Ord,
source§impl<T, U> PartialEq<&NonEmpty<[U]>> for Vec<T>where
T: PartialEq<U>,
impl<T, U> PartialEq<&NonEmpty<[U]>> for Vec<T>where
T: PartialEq<U>,
source§impl<T, U, const N: usize> PartialEq<&NonEmpty<[U; N]>> for Vec<T>where
T: PartialEq<U>,
impl<T, U, const N: usize> PartialEq<&NonEmpty<[U; N]>> for Vec<T>where
T: PartialEq<U>,
source§impl<T, U> PartialEq<&mut NonEmpty<[U]>> for Vec<T>where
T: PartialEq<U>,
impl<T, U> PartialEq<&mut NonEmpty<[U]>> for Vec<T>where
T: PartialEq<U>,
source§impl<T, U, const N: usize> PartialEq<[U; N]> for Vec<T>where
T: PartialEq<U>,
impl<T, U, const N: usize> PartialEq<[U; N]> for Vec<T>where
T: PartialEq<U>,
source§impl<T, U> PartialEq<NonEmpty<[U]>> for Vec<T>where
T: PartialEq<U>,
impl<T, U> PartialEq<NonEmpty<[U]>> for Vec<T>where
T: PartialEq<U>,
source§impl<T, U, const N: usize> PartialEq<NonEmpty<[U; N]>> for Vec<T>where
T: PartialEq<U>,
impl<T, U, const N: usize> PartialEq<NonEmpty<[U; N]>> for Vec<T>where
T: PartialEq<U>,
source§impl<T, U> PartialEq<NonEmpty<Vec<U>>> for Vec<T>where
T: PartialEq<U>,
impl<T, U> PartialEq<NonEmpty<Vec<U>>> for Vec<T>where
T: PartialEq<U>,
source§impl<T, U> PartialEq<Vec<U>> for Vec<T>where
T: PartialEq<U>,
impl<T, U> PartialEq<Vec<U>> for Vec<T>where
T: PartialEq<U>,
source§impl<T> PartialOrd<[T]> for Vec<T>where
T: PartialOrd,
impl<T> PartialOrd<[T]> for Vec<T>where
T: PartialOrd,
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
self
and other
) and is used by the <=
operator. Read moresource§impl<T, const N: usize> PartialOrd<[T; N]> for Vec<T>where
T: PartialOrd,
impl<T, const N: usize> PartialOrd<[T; N]> for Vec<T>where
T: PartialOrd,
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
self
and other
) and is used by the <=
operator. Read moresource§impl<T> PartialOrd<Vec<T>> for Vec<T>where
T: PartialOrd,
impl<T> PartialOrd<Vec<T>> for Vec<T>where
T: PartialOrd,
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
self
and other
) and is used by the <=
operator. Read moresource§impl<T> PartialOrd for Vec<T>where
T: PartialOrd,
impl<T> PartialOrd for Vec<T>where
T: PartialOrd,
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
self
and other
) and is used by the <=
operator. Read more