auto merge of #16417 : jasonthompson/rust/docs/slice3, r=alexcrichton

- Moved examples for permutations and next into trait definition as
   comments on pull request #16244.
- Fixed (hopefully) issue with erronious commit of changes to src/llvm.
This commit is contained in:
bors 2014-08-12 00:26:13 +00:00
commit 9dcf89567e

View File

@ -301,6 +301,28 @@ pub trait ImmutableCloneableVector<T> {
/// Create an iterator that yields every possible permutation of the
/// vector in succession.
///
/// # Example
///
/// ```rust
/// let v = [1i, 2, 3];
/// let mut perms = v.permutations();
///
/// for p in perms {
/// println!("{}", p);
/// }
/// ```
///
/// # Example 2: iterating through permutations one by one.
///
/// ```rust
/// let v = [1i, 2, 3];
/// let mut perms = v.permutations();
///
/// assert_eq!(Some(vec![1i, 2, 3]), perms.next());
/// assert_eq!(Some(vec![1i, 3, 2]), perms.next());
/// assert_eq!(Some(vec![3i, 1, 2]), perms.next());
/// ```
fn permutations(self) -> Permutations<T>;
}
@ -321,6 +343,7 @@ fn partitioned(&self, f: |&T| -> bool) -> (Vec<T>, Vec<T>) {
(lefts, rights)
}
/// Returns an iterator over all permutations of a vector.
fn permutations(self) -> Permutations<T> {
Permutations{
swaps: ElementSwaps::new(self.len()),
@ -567,6 +590,16 @@ pub trait MutableVectorAllocating<'a, T> {
* * src - A mutable vector of `T`
* * start - The index into `src` to start copying from
* * end - The index into `src` to stop copying from
*
* # Example
*
* ```rust
* let mut a = [1i, 2, 3, 4, 5];
* let b = vec![6i, 7, 8];
* let num_moved = a.move_from(b, 0, 3);
* assert_eq!(num_moved, 3);
* assert!(a == [6i, 7, 8, 4, 5]);
* ```
*/
fn move_from(self, src: Vec<T>, start: uint, end: uint) -> uint;
}