about summary refs log tree commit diff
diff options
context:
space:
mode:
authorUlrik Sverdrup <bluss@users.noreply.github.com>2015-07-09 22:43:12 +0200
committerUlrik Sverdrup <bluss@users.noreply.github.com>2015-07-09 22:51:00 +0200
commit1abdd130d8308d083741bb131256b95f5543e23c (patch)
tree688458a13c6ebaf428e2f9436373e5e3d5dcaaf1
parent6c4e236b955ba6a2dd8ef8e054f50ff64135a8be (diff)
downloadrust-1abdd130d8308d083741bb131256b95f5543e23c.tar.gz
rust-1abdd130d8308d083741bb131256b95f5543e23c.zip
Expand documentation for the primitive type array
-rw-r--r--src/libstd/array.rs41
1 files changed, 35 insertions, 6 deletions
diff --git a/src/libstd/array.rs b/src/libstd/array.rs
index 6887e398fd4..e79e5d5a680 100644
--- a/src/libstd/array.rs
+++ b/src/libstd/array.rs
@@ -8,19 +8,48 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-//! The fixed-size array type (`[T; n]`).
+//! A fixed-size array is denoted `[T; N]` for the element type `T` and
+//! the compile time constant size `N`. The size should be zero or positive.
 //!
-//! Some usage examples:
+//! Arrays values are created either with an explicit expression that lists
+//! each element: `[x, y, z]` or a repeat expression: `[x; N]`. The repeat
+//! expression requires that the element type is `Copy`.
+//!
+//! The type `[T; N]` is `Copy` if `T: Copy`.
+//!
+//! Arrays of sizes from 0 to 32 (inclusive) implement the following traits
+//! if the element type allows it:
+//!
+//! - `Clone`
+//! - `Debug`
+//! - `IntoIterator` (implemented for `&[T; N]` and `&mut [T; N]`)
+//! - `PartialEq`, `PartialOrd`, `Ord`, `Eq`
+//! - `Hash`
+//! - `AsRef`, `AsMut`
+//!
+//! Arrays dereference to [slices (`[T]`)][slice], so their methods can be called
+//! on arrays.
+//!
+//! [slice]: primitive.slice.html
+//!
+//! ## Examples
 //!
 //! ```
-//! let array: [i32; 3] = [0, 1, 2];
+//! let mut array: [i32; 3] = [0; 3];
+//!
+//! array[1] = 1;
+//! array[2] = 2;
 //!
-//! assert_eq!(0, array[0]);
-//! assert_eq!([0, 1], &array[..2]);
+//! assert_eq!([1, 2], &array[1..]);
 //!
+//! // This loop prints: 0 1 2
 //! for x in &array {
-//!     println!("{}", x);
+//!     print!("{} ", x);
 //! }
+//!
 //! ```
+//!
+//! Rust does not currently support generics over the size of an array type.
+//!
 
 #![doc(primitive = "array")]