Skip to content

Commit

Permalink
Add examples for DList methods rotate_forward, rotate_backward, appen…
Browse files Browse the repository at this point in the history
…d, prepend and insert_when
  • Loading branch information
nham committed Jul 18, 2014
1 parent f50e4ee commit 7ee45aa
Showing 1 changed file with 91 additions and 0 deletions.
91 changes: 91 additions & 0 deletions src/libcollections/dlist.rs
Expand Up @@ -278,6 +278,23 @@ impl<T> DList<T> {
/// Move the last element to the front of the list.
///
/// If the list is empty, do nothing.
///
/// # Example
///
/// ```rust
/// use std::collections::{DList, Deque};
///
/// let mut dl = DList::new();
/// dl.push_back(1i);
/// dl.push_back(2);
/// dl.push_back(3);
///
/// dl.rotate_forward();
///
/// for e in dl.iter() {
/// println!("{}", e); // prints 3, then 1, then 2
/// }
/// ```
#[inline]
pub fn rotate_forward(&mut self) {
self.pop_back_node().map(|tail| {
Expand All @@ -288,6 +305,23 @@ impl<T> DList<T> {
/// Move the first element to the back of the list.
///
/// If the list is empty, do nothing.
///
/// # Example
///
/// ```rust
/// use std::collections::{DList, Deque};
///
/// let mut dl = DList::new();
/// dl.push_back(1i);
/// dl.push_back(2);
/// dl.push_back(3);
///
/// dl.rotate_backward();
///
/// for e in dl.iter() {
/// println!("{}", e); // prints 2, then 3, then 1
/// }
/// ```
#[inline]
pub fn rotate_backward(&mut self) {
self.pop_front_node().map(|head| {
Expand All @@ -298,6 +332,25 @@ impl<T> DList<T> {
/// Add all elements from `other` to the end of the list
///
/// O(1)
///
/// # Example
///
/// ```rust
/// use std::collections::{DList, Deque};
///
/// let mut a = DList::new();
/// let mut b = DList::new();
/// a.push_back(1i);
/// a.push_back(2);
/// b.push_back(3i);
/// b.push_back(4);
///
/// a.append(b);
///
/// for e in a.iter() {
/// println!("{}", e); // prints 1, then 2, then 3, then 4
/// }
/// ```
pub fn append(&mut self, mut other: DList<T>) {
match self.list_tail.resolve() {
None => *self = other,
Expand All @@ -320,6 +373,25 @@ impl<T> DList<T> {
/// Add all elements from `other` to the beginning of the list
///
/// O(1)
///
/// # Example
///
/// ```rust
/// use std::collections::{DList, Deque};
///
/// let mut a = DList::new();
/// let mut b = DList::new();
/// a.push_back(1i);
/// a.push_back(2);
/// b.push_back(3i);
/// b.push_back(4);
///
/// a.prepend(b);
///
/// for e in a.iter() {
/// println!("{}", e); // prints 3, then 4, then 1, then 2
/// }
/// ```
#[inline]
pub fn prepend(&mut self, mut other: DList<T>) {
mem::swap(self, &mut other);
Expand All @@ -330,6 +402,25 @@ impl<T> DList<T> {
/// or at the end.
///
/// O(N)
///
/// # Example
///
/// ```rust
/// use std::collections::{DList, Deque};
///
/// let mut a: DList<int> = DList::new();
/// a.push_back(2i);
/// a.push_back(4);
/// a.push_back(7);
/// a.push_back(8);
///
/// // insert 11 before the first odd number in the list
/// a.insert_when(11, |&e, _| e % 2 == 1);
///
/// for e in a.iter() {
/// println!("{}", e); // prints 2, then 4, then 11, then 7, then 8
/// }
/// ```
pub fn insert_when(&mut self, elt: T, f: |&T, &T| -> bool) {
{
let mut it = self.mut_iter();
Expand Down

5 comments on commit 7ee45aa

@bors
Copy link
Contributor

@bors bors commented on 7ee45aa Jul 19, 2014

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

saw approval from alexcrichton
at nham@7ee45aa

@bors
Copy link
Contributor

@bors bors commented on 7ee45aa Jul 19, 2014

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

merging nham/rust/dlist_docs = 7ee45aa into auto

@bors
Copy link
Contributor

@bors bors commented on 7ee45aa Jul 19, 2014

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nham/rust/dlist_docs = 7ee45aa merged ok, testing candidate = fb4c3f0

@bors
Copy link
Contributor

@bors bors commented on 7ee45aa Jul 19, 2014

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fast-forwarding master to auto = fb4c3f0

Please sign in to comment.