Struct jagged_array::Jagged2Builder
[−]
[src]
pub struct Jagged2Builder<T> { /* fields omitted */ }
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][..]));
Methods
impl<T> Jagged2Builder<T>
[src]
fn new() -> Self
Construct a new array builder, defaulted to not holding any rows.
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.
fn len(&self) -> usize
Return the number of rows held in the array builder.
fn flat_len(&self) -> usize
Return the total number of T
held in the array.
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
impl<T: Clone> Clone for Jagged2Builder<T>
[src]
fn clone(&self) -> Jagged2Builder<T>
Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)
1.0.0
Performs copy-assignment from source
. Read more
impl<T: Debug> Debug for Jagged2Builder<T>
[src]
impl<T: Eq> Eq for Jagged2Builder<T>
[src]
impl<T: Hash> Hash for Jagged2Builder<T>
[src]
fn hash<__HT: Hasher>(&self, __arg_0: &mut __HT)
Feeds this value into the given [Hasher
]. Read more
fn hash_slice<H>(data: &[Self], state: &mut H) where
H: Hasher,
1.3.0
H: Hasher,
Feeds a slice of this type into the given [Hasher
]. Read more
impl<T: PartialEq> PartialEq for Jagged2Builder<T>
[src]
fn eq(&self, __arg_0: &Jagged2Builder<T>) -> bool
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, __arg_0: &Jagged2Builder<T>) -> bool
This method tests for !=
.
impl<T> Default for Jagged2Builder<T>
[src]
impl<T> Extend<T> for Jagged2Builder<T>
[src]
fn extend<I>(&mut self, row: I) where
I: IntoIterator<Item = T>,
I: IntoIterator<Item = T>,
Push a new row into the builder
impl<'a, T> Extend<&'a T> for Jagged2Builder<T> where
T: 'a + Copy,
[src]
T: 'a + Copy,
fn extend<I>(&mut self, row: I) where
I: IntoIterator<Item = &'a T>,
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.