# [−][src]Crate generic_array

This crate implements a structure that can be used as a generic array type.use 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]
    }

won't work.

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

    struct Foo<T, N: ArrayLength<T>> {
        data: GenericArray<T,N>
    }

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

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

arr | Implementation for `arr!` macro.
functional | Functional programming with generic sequences
iter | `GenericArray` iterator implementation.
sequence | Useful traits for manipulating sequences of data stored in `GenericArray`s

## Macros

arr | Macro allowing for easy generation of Generic Arrays. Example: `let test = arr![u32; 1, 2, 3];`

## Structs

GenericArray | Struct representing a generic array - `GenericArray<T, N>` works like [T; N]

## Traits

ArrayLength | Trait making `GenericArray` work, marking types to be used as length of an array

# Help

## Keyboard Shortcuts

`?`
  Show this help dialog
`S`
  Focus the search field
`↑`
  Move up in search results
`↓`
  Move down in search results
`↹`
  Switch tab
`⏎`
  Go to active search result
`+`
  Expand all sections
`-`
  Collapse all sections

## Search Tricks

Prefix searches with a type followed by a colon (e.g., `fn:`) to restrict the search to a given type.

Accepted types are: `fn`, `mod`, `struct`, `enum`, `trait`, `type`, `macro`, and `const`.

Search functions by type signature (e.g., `vec -> usize` or `* -> vec`)

Search multiple things at once by splitting your query with comma (e.g., `str,u8` or `String,struct:Vec,test`)