pub struct Jagged2Builder<T> { /* private fields */ }
Expand description
Struct to facilitate building a jagged array row by row.
§Example
use jagged_array::{Jagged2, Jagged2Builder};
let mut builder = Jagged2Builder::new();
builder.extend(&[1, 2]); // push an array/slice
builder.extend((0..2)); // push an iterator (range)
builder.extend(vec![3]); // push and consume a vector
// Finalize the builder into an array.
let array: Jagged2<u32> = builder.into();
assert_eq!(array.len(), 3);
assert_eq!(array.get_row(0), Some(&[1, 2][..]));
assert_eq!(array.get_row(1), Some(&[0, 1][..]));
assert_eq!(array.get_row(2), Some(&[3][..]));
Implementations§
Source§impl<T> Jagged2Builder<T>
impl<T> Jagged2Builder<T>
Sourcepub fn with_capacity(row_cap: usize, item_cap: usize) -> Self
pub fn with_capacity(row_cap: usize, item_cap: usize) -> Self
Construct an empty array builder, but preallocate enough heap space
for row_cap
rows, and a total of item_cap
items stored cumulatively
in the array.
Adding more rows/items than specified after using this constructor is not an error; more space will be allocated on demand.
Sourcepub fn resize(&mut self, new_len: usize)
pub fn resize(&mut self, new_len: usize)
If new_len < self.len()
, the array will be extended
with empty rows until it reaches the given length. Otherwise,
rows will be truncated from the tail of the array until the length is reached.
§Example
use jagged_array::Jagged2Builder;
let mut builder: Jagged2Builder<u32> = Jagged2Builder::new();
builder.extend(&[1, 2]);
builder.extend(&[3]);
builder.resize(4);
let mut expected: Jagged2Builder<u32> = Jagged2Builder::new();
expected.extend(&[1, 2]);
expected.extend(&[3]);
expected.extend(&[]);
expected.extend(&[]);
assert_eq!(builder, expected);
Trait Implementations§
Source§impl<T: Clone> Clone for Jagged2Builder<T>
impl<T: Clone> Clone for Jagged2Builder<T>
Source§fn clone(&self) -> Jagged2Builder<T>
fn clone(&self) -> Jagged2Builder<T>
Returns a copy of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreSource§impl<T: Debug> Debug for Jagged2Builder<T>
impl<T: Debug> Debug for Jagged2Builder<T>
Source§impl<T> Default for Jagged2Builder<T>
impl<T> Default for Jagged2Builder<T>
Source§impl<'a, T> Extend<&'a T> for Jagged2Builder<T>where
T: 'a + Copy,
impl<'a, T> Extend<&'a T> for Jagged2Builder<T>where
T: 'a + Copy,
Source§fn extend<I>(&mut self, row: I)where
I: IntoIterator<Item = &'a T>,
fn extend<I>(&mut self, row: I)where
I: IntoIterator<Item = &'a T>,
Push a new row into the builder; this also works for array/slice types passed by reference, if T is Copy.
Source§fn extend_one(&mut self, item: A)
fn extend_one(&mut self, item: A)
🔬This is a nightly-only experimental API. (
extend_one
)Extends a collection with exactly one element.
Source§fn extend_reserve(&mut self, additional: usize)
fn extend_reserve(&mut self, additional: usize)
🔬This is a nightly-only experimental API. (
extend_one
)Reserves capacity in a collection for the given number of additional elements. Read more
Source§impl<T> Extend<T> for Jagged2Builder<T>
impl<T> Extend<T> for Jagged2Builder<T>
Source§fn extend<I>(&mut self, row: I)where
I: IntoIterator<Item = T>,
fn extend<I>(&mut self, row: I)where
I: IntoIterator<Item = T>,
Push a new row into the builder
Source§fn extend_one(&mut self, item: A)
fn extend_one(&mut self, item: A)
🔬This is a nightly-only experimental API. (
extend_one
)Extends a collection with exactly one element.
Source§fn extend_reserve(&mut self, additional: usize)
fn extend_reserve(&mut self, additional: usize)
🔬This is a nightly-only experimental API. (
extend_one
)Reserves capacity in a collection for the given number of additional elements. Read more
Source§impl<T: Hash> Hash for Jagged2Builder<T>
impl<T: Hash> Hash for Jagged2Builder<T>
Source§impl<T> Into<Jagged2<T>> for Jagged2Builder<T>
impl<T> Into<Jagged2<T>> for Jagged2Builder<T>
Source§impl<T: PartialEq> PartialEq for Jagged2Builder<T>
impl<T: PartialEq> PartialEq for Jagged2Builder<T>
impl<T: Eq> Eq for Jagged2Builder<T>
impl<T> StructuralPartialEq for Jagged2Builder<T>
Auto Trait Implementations§
impl<T> Freeze for Jagged2Builder<T>
impl<T> RefUnwindSafe for Jagged2Builder<T>where
T: RefUnwindSafe,
impl<T> !Send for Jagged2Builder<T>
impl<T> !Sync for Jagged2Builder<T>
impl<T> Unpin for Jagged2Builder<T>where
T: Unpin,
impl<T> UnwindSafe for Jagged2Builder<T>where
T: UnwindSafe + RefUnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more