diff --git a/generic_array/all.html b/generic_array/all.html index e64c8b3e..ccf91f12 100644 --- a/generic_array/all.html +++ b/generic_array/all.html @@ -1,6 +1,6 @@ List of all items in this crate -

[][src]Module generic_array::arr

Implementation for arr! macro.

Traits

AddLength

Helper trait for arr! macro

Type Definitions

diff --git a/generic_array/functional/index.html b/generic_array/functional/index.html index 7a240a13..a4ded80e 100644 --- a/generic_array/functional/index.html +++ b/generic_array/functional/index.html @@ -1,7 +1,7 @@ generic_array::functional - Rust

[][src]Module generic_array::functional

Functional programming with generic sequences

+ Change settings

[][src]Module generic_array::functional

Functional programming with generic sequences

Please see tests/generics.rs for examples of how to best use these in your generic functions.

Traits

FunctionalSequence

Defines functional programming methods for generic sequences

diff --git a/generic_array/functional/trait.FunctionalSequence.html b/generic_array/functional/trait.FunctionalSequence.html index ded8befb..c5eec625 100644 --- a/generic_array/functional/trait.FunctionalSequence.html +++ b/generic_array/functional/trait.FunctionalSequence.html @@ -1,7 +1,7 @@ generic_array::functional::FunctionalSequence - Rust

[][src]Trait generic_array::functional::FunctionalSequence

pub unsafe trait FunctionalSequence<T>: GenericSequence<T> {
+                Change settings

[][src]Trait generic_array::functional::FunctionalSequence

pub unsafe trait FunctionalSequence<T>: GenericSequence<T> {
     fn map<U, F>(self, f: F) -> MappedSequence<Self, T, U>
    where
        Self: MappedGenericSequence<T, U>,
        Self::Length: ArrayLength<U>,
        F: FnMut(Self::Item) -> U
, { ... }
fn zip<B, Rhs, U, F>(self, rhs: Rhs, f: F) -> MappedSequence<Self, T, U>
    where
        Self: MappedGenericSequence<T, U>,
        Rhs: MappedGenericSequence<B, U, Mapped = MappedSequence<Self, T, U>>,
        Self::Length: ArrayLength<B> + ArrayLength<U>,
        Rhs: GenericSequence<B, Length = Self::Length>,
        F: FnMut(Self::Item, Rhs::Item) -> U
, @@ -18,4 +18,4 @@ initializing a new GenericSequence with the result of the zipped ma will be dropped, AND any unused elements in the source sequences will also be dropped.

fn fold<U, F>(self, init: U, f: F) -> U where
    F: FnMut(U, Self::Item) -> U, 

Folds (or reduces) a sequence of data into a single value.

If the fold function panics, any unused elements will be dropped.

-
Loading content...

Implementors

impl<'a, T, S: GenericSequence<T>> FunctionalSequence<T> for &'a S where
    &'a S: GenericSequence<T>, 
[src]

impl<'a, T, S: GenericSequence<T>> FunctionalSequence<T> for &'a mut S where
    &'a mut S: GenericSequence<T>, 
[src]

impl<T, N> FunctionalSequence<T> for GenericArray<T, N> where
    N: ArrayLength<T>,
    Self: GenericSequence<T, Item = T, Length = N>, 
[src]

Loading content...
\ No newline at end of file +Loading content...

Implementors

impl<'a, T, S: GenericSequence<T>> FunctionalSequence<T> for &'a S where
    &'a S: GenericSequence<T>, 
[src]

impl<'a, T, S: GenericSequence<T>> FunctionalSequence<T> for &'a mut S where
    &'a mut S: GenericSequence<T>, 
[src]

impl<T, N> FunctionalSequence<T> for GenericArray<T, N> where
    N: ArrayLength<T>,
    Self: GenericSequence<T, Item = T, Length = N>, 
[src]

Loading content...
\ No newline at end of file diff --git a/generic_array/functional/trait.MappedGenericSequence.html b/generic_array/functional/trait.MappedGenericSequence.html index 05262999..a8f011c4 100644 --- a/generic_array/functional/trait.MappedGenericSequence.html +++ b/generic_array/functional/trait.MappedGenericSequence.html @@ -1,9 +1,9 @@ generic_array::functional::MappedGenericSequence - Rust

[][src]Trait generic_array::functional::MappedGenericSequence

pub unsafe trait MappedGenericSequence<T, U>: GenericSequence<T> where
    Self::Length: ArrayLength<U>, 
{ + Change settings

[][src]Trait generic_array::functional::MappedGenericSequence

pub unsafe trait MappedGenericSequence<T, U>: GenericSequence<T> where
    Self::Length: ArrayLength<U>, 
{ type Mapped: GenericSequence<U, Length = Self::Length>; }

Defines the relationship between one generic sequence and another, for operations such as map and zip.

Associated Types

type Mapped: GenericSequence<U, Length = Self::Length>

Mapped sequence type

-
Loading content...

Implementors

impl<'a, T, U, S: MappedGenericSequence<T, U>> MappedGenericSequence<T, U> for &'a S where
    &'a S: GenericSequence<T>,
    S: GenericSequence<T, Length = <&'a S as GenericSequence<T>>::Length>,
    <S as GenericSequence<T>>::Length: ArrayLength<U>, 
[src]

type Mapped = <S as MappedGenericSequence<T, U>>::Mapped

impl<'a, T, U, S: MappedGenericSequence<T, U>> MappedGenericSequence<T, U> for &'a mut S where
    &'a mut S: GenericSequence<T>,
    S: GenericSequence<T, Length = <&'a mut S as GenericSequence<T>>::Length>,
    <S as GenericSequence<T>>::Length: ArrayLength<U>, 
[src]

type Mapped = <S as MappedGenericSequence<T, U>>::Mapped

impl<T, U, N> MappedGenericSequence<T, U> for GenericArray<T, N> where
    N: ArrayLength<T> + ArrayLength<U>,
    GenericArray<U, N>: GenericSequence<U, Length = N>, 
[src]

type Mapped = GenericArray<U, N>

Loading content...
\ No newline at end of file +Loading content...

Implementors

impl<'a, T, U, S: MappedGenericSequence<T, U>> MappedGenericSequence<T, U> for &'a S where
    &'a S: GenericSequence<T>,
    S: GenericSequence<T, Length = <&'a S as GenericSequence<T>>::Length>,
    <S as GenericSequence<T>>::Length: ArrayLength<U>, 
[src]

type Mapped = <S as MappedGenericSequence<T, U>>::Mapped

impl<'a, T, U, S: MappedGenericSequence<T, U>> MappedGenericSequence<T, U> for &'a mut S where
    &'a mut S: GenericSequence<T>,
    S: GenericSequence<T, Length = <&'a mut S as GenericSequence<T>>::Length>,
    <S as GenericSequence<T>>::Length: ArrayLength<U>, 
[src]

type Mapped = <S as MappedGenericSequence<T, U>>::Mapped

impl<T, U, N> MappedGenericSequence<T, U> for GenericArray<T, N> where
    N: ArrayLength<T> + ArrayLength<U>,
    GenericArray<U, N>: GenericSequence<U, Length = N>, 
[src]

type Mapped = GenericArray<U, N>

Loading content...
\ No newline at end of file diff --git a/generic_array/functional/type.MappedSequence.html b/generic_array/functional/type.MappedSequence.html index 277a6a36..cfaa9207 100644 --- a/generic_array/functional/type.MappedSequence.html +++ b/generic_array/functional/type.MappedSequence.html @@ -1,5 +1,5 @@ generic_array::functional::MappedSequence - Rust

[][src]Type Definition generic_array::functional::MappedSequence

type MappedSequence<S, T, U> = <<S as MappedGenericSequence<T, U>>::Mapped as GenericSequence<U>>::Sequence;

Accessor type for a mapped generic sequence

+ Change settings

[][src]Type Definition generic_array::functional::MappedSequence

type MappedSequence<S, T, U> = <<S as MappedGenericSequence<T, U>>::Mapped as GenericSequence<U>>::Sequence;

Accessor type for a mapped generic sequence

\ No newline at end of file diff --git a/generic_array/index.html b/generic_array/index.html index ac53ec68..32596fa1 100644 --- a/generic_array/index.html +++ b/generic_array/index.html @@ -1,31 +1,53 @@ generic_array - Rust -

[][src]Crate generic_array

This crate implements a structure that can be used as a generic array type.use +

[][src]Crate generic_array

This crate implements a structure that can be used as a generic array type. Core Rust array types [T; N] can't be used generically with respect to N, so for example this:

-
struct Foo<T, N> {
-    data: [T; N]
-}
-
+ +
This example deliberately fails to compile
+struct Foo<T, N> {
+    data: [T; N]
+}

won't work.

generic-array exports a GenericArray<T,N> type, which lets the above be implemented as:

+use generic_array::{ArrayLength, GenericArray};
+
 struct Foo<T, N: ArrayLength<T>> {
     data: GenericArray<T,N>
 }

The ArrayLength<T> trait is implemented by default for unsigned integer types from -typenum.

+typenum:

+ +
+use generic_array::typenum::U5;
+
+struct Foo<N: ArrayLength<i32>> {
+    data: GenericArray<i32, N>
+}
+
+let foo = Foo::<U5>{data: GenericArray::default()};
+

For example, GenericArray<T, U5> would work almost like [T; 5]:

+ +
+use generic_array::typenum::U5;
+
+struct Foo<T, N: ArrayLength<T>> {
+    data: GenericArray<T, N>
+}
+
+let foo = Foo::<i32, U5>{data: GenericArray::default()};

For ease of use, an arr! macro is provided - example below:

 let array = arr![u32; 1, 2, 3];
 assert_eq!(array[2], 3);

Re-exports

-
pub extern crate typenum;
pub use iter::GenericArrayIter;

Modules

+
pub extern crate typenum;
pub use self::iter::GenericArrayIter;

Modules

arr

Implementation for arr! macro.

functional

Functional programming with generic sequences

iter

GenericArray iterator implementation.

diff --git a/generic_array/iter/index.html b/generic_array/iter/index.html index ace0a183..7a7fb4d4 100644 --- a/generic_array/iter/index.html +++ b/generic_array/iter/index.html @@ -1,7 +1,7 @@ generic_array::iter - Rust

[][src]Module generic_array::iter

GenericArray iterator implementation.

+ Change settings

[][src]Module generic_array::iter

GenericArray iterator implementation.

Structs

GenericArrayIter

An iterator that moves out of a GenericArray

\ No newline at end of file diff --git a/generic_array/iter/struct.GenericArrayIter.html b/generic_array/iter/struct.GenericArrayIter.html index dc6b526f..e2454d3a 100644 --- a/generic_array/iter/struct.GenericArrayIter.html +++ b/generic_array/iter/struct.GenericArrayIter.html @@ -1,30 +1,31 @@ generic_array::iter::GenericArrayIter - Rust -

[][src]Struct generic_array::iter::GenericArrayIter

pub struct GenericArrayIter<T, N: ArrayLength<T>> { /* fields omitted */ }

An iterator that moves out of a GenericArray

-

Implementations

impl<T, N> GenericArrayIter<T, N> where
    N: ArrayLength<T>, 
[src]

pub fn as_slice(&self) -> &[T][src]

Returns the remaining items of this iterator as a slice

-

pub fn as_mut_slice(&mut self) -> &mut [T][src]

Returns the remaining items of this iterator as a mutable slice

-

Trait Implementations

impl<T: Clone, N> Clone for GenericArrayIter<T, N> where
    N: ArrayLength<T>, 
[src]