[][src]Struct postgres_array::Array

pub struct Array<T> { /* fields omitted */ }

A multi-dimensional array.

Implementations

impl<T> Array<T>[src]

pub fn from_parts(data: Vec<T>, dimensions: Vec<Dimension>) -> Array<T>[src]

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.

pub fn from_vec(data: Vec<T>, lower_bound: i32) -> Array<T>[src]

Creates a new one-dimensional array.

pub fn wrap(&mut self, lower_bound: i32)[src]

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]].

pub fn push(&mut self, other: Array<T>)[src]

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.

pub fn dimensions(&self) -> &[Dimension][src]

Returns the dimensions of this array.

pub fn iter(&self) -> Iter<'_, T>

Notable traits for Iter<'a, T>

impl<'a, T: 'a> Iterator for Iter<'a, T> type Item = &'a T;
[src]

Returns an iterator over references to the elements of the array in the higher-dimensional equivalent of row-major order.

pub fn iter_mut(&mut self) -> IterMut<'_, T>

Notable traits for IterMut<'a, T>

impl<'a, T: 'a> Iterator for IterMut<'a, T> type Item = &'a mut T;
[src]

Returns an iterator over mutable references to the elements of the array in the higher-dimensional equivalent of row-major order.

pub fn into_inner(self) -> Vec<T>[src]

Returns the underlying data vector for this Array in the higher-dimensional equivalent of row-major order.

Trait Implementations

impl<T: Clone> Clone for Array<T>[src]

impl<T: Debug> Debug for Array<T>[src]

impl<T: Display> Display for Array<T>[src]

impl<T: Eq> Eq for Array<T>[src]

impl<'de, T> FromSql<'de> for Array<T> where
    T: FromSql<'de>, 
[src]

impl<T, I: ArrayIndex> Index<I> for Array<T>[src]

Indexes into the Array, retrieving a reference to the contained value.

Since Arrays can be multi-dimensional, the Index trait is implemented for a variety of index types. In the most generic case, a &[i32] can be used. In addition, a bare i32 as well as tuples of up to 10 i32 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)]);

type Output = T

The returned type after indexing.

impl<T, I: ArrayIndex> IndexMut<I> for Array<T>[src]

impl<'a, T: 'a> IntoIterator for &'a Array<T>[src]

type Item = &'a T

The type of the elements being iterated over.

type IntoIter = Iter<'a, T>

Which kind of iterator are we turning this into?

impl<'a, T: 'a> IntoIterator for &'a mut Array<T>[src]

type Item = &'a mut T

The type of the elements being iterated over.

type IntoIter = IterMut<'a, T>

Which kind of iterator are we turning this into?

impl<T> IntoIterator for Array<T>[src]

type Item = T

The type of the elements being iterated over.

type IntoIter = IntoIter<T>

Which kind of iterator are we turning this into?

impl<T: PartialEq> PartialEq<Array<T>> for Array<T>[src]

impl<T> StructuralEq for Array<T>[src]

impl<T> StructuralPartialEq for Array<T>[src]

impl<T> ToSql for Array<T> where
    T: ToSql
[src]

Auto Trait Implementations

impl<T> RefUnwindSafe for Array<T> where
    T: RefUnwindSafe
[src]

impl<T> Send for Array<T> where
    T: Send
[src]

impl<T> Sync for Array<T> where
    T: Sync
[src]

impl<T> Unpin for Array<T> where
    T: Unpin
[src]

impl<T> UnwindSafe for Array<T> where
    T: UnwindSafe
[src]

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> BorrowToSql for T where
    T: ToSql
[src]

impl<T> From<T> for T[src]

impl<T> FromSqlOwned for T where
    T: for<'a> FromSql<'a>, 
[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T> ToString for T where
    T: Display + ?Sized
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>,