Struct postgres_array::array::Array
[−]
[src]
pub struct Array<T> { // some fields omitted }
A multi-dimensional array.
Methods
impl<T> Array<T>
fn from_parts(data: Vec<T>, dimensions: Vec<Dimension>) -> Array<T>
Creates a new Array
from its underlying components.
The data array should be provided in the higher-dimensional equivalent of row-major order.
Panics
Panics if the number of elements provided does not match the number of elements specified by the dimensions.
fn from_vec(data: Vec<T>, lower_bound: isize) -> Array<T>
Creates a new one-dimensional array.
fn wrap(&mut self, lower_bound: isize)
Wraps this array in a new dimension of size 1.
For example, the one dimensional array [1, 2]
would turn into the
two-dimensional array [[1, 2]]
.
fn push(&mut self, other: Array<T>)
Consumes another array, appending it to the top level dimension of this array.
The dimensions of the other array must be the same as the dimensions of this array with the first dimension removed. This includes lower bounds as well as lengths.
For example, if [3, 4]
is pushed onto [[1, 2]]
, the result is
[[1, 2], [3, 4]]
.
Panics
Panics if the dimensions of the two arrays do not match.
fn dimensions(&self) -> &[Dimension]
Returns the dimensions of this array.
fn iter<'a>(&'a self) -> Iter<'a, T>
Returns an iterator over references to the elements of the array in the higher-dimensional equivalent of row-major order.
fn iter_mut<'a>(&'a mut self) -> IterMut<'a, T>
Returns an iterator over mutable references to the elements of the array in the higher-dimensional equivalent of row-major order.
Trait Implementations
impl<T: Display> Display for Array<T>
impl<T, I: ArrayIndex> Index<I> for Array<T>
Indexes into the Array
, retrieving a reference to the contained
value.
Since Array
s can be multi-dimensional, the Index
trait is
implemented for a variety of index types. In the most generic case, a
&[isize]
can be used. In addition, a bare isize
as well as tuples
of up to 10 isize
values may be used for convenience.
Panics
Panics if the index does not correspond to an in-bounds element of the
Array
.
Examples
let mut array = Array::from_vec(vec![0i32, 1, 2, 3], 0); assert_eq!(2, array[2]); array.wrap(0); array.push(Array::from_vec(vec![4, 5, 6, 7], 0)); assert_eq!(6, array[(1, 2)]);