about summary refs log tree commit diff
path: root/src/rt/jemalloc/test/aligned_alloc.exp
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2013-10-16 17:01:30 -0700
committerbors <bors@rust-lang.org>2013-10-16 17:01:30 -0700
commit63e097d8c34143411ea6d3146493bd6d8f3428d7 (patch)
tree0a266bf84cbfe54491e671445faa14d50bb67261 /src/rt/jemalloc/test/aligned_alloc.exp
parent9d6c251881584181a0022dc41832398af2136f19 (diff)
parent8163cb53903dd09e920b6267eba72793394b77d0 (diff)
downloadrust-63e097d8c34143411ea6d3146493bd6d8f3428d7.tar.gz
rust-63e097d8c34143411ea6d3146493bd6d8f3428d7.zip
auto merge of #9634 : blake2-ppc/rust/by-ref-iter, r=thestinger
std::iter: Introduce .by_ref() adaptor

Creates a wrapper around a mutable reference to the iterator.

This is useful to allow applying iterator adaptors while still
retaining ownership of the original iterator value.

Example::

    let mut xs = range(0, 10);
    // sum the first five values
    let partial_sum = xs.by_ref().take(5).fold(0, |a, b| a + b);
    assert!(partial_sum == 10);
    // xs.next() is now `5`
    assert!(xs.next() == Some(5));

---

This adaptor requires the user to have good understanding of
iterators or what a particular adaptor does. There could be some
pitfalls here with the iterator protocol, it's mostly the same issues
as other places regarding what happens after the iterator
returns None for the first time.

There could also be other ways to achieve the same thing, for
example Implementing iterator on `&mut T` itself:
`impl <T: Iterator<..>> Iterator for &mut T`  but that would only
lead to confusion I think.
Diffstat (limited to 'src/rt/jemalloc/test/aligned_alloc.exp')
0 files changed, 0 insertions, 0 deletions