blake2-ppc
b1a071e314
dlist: Remove bench tests for vec
...
These tests for ~[] performance don't really belong here, they were for
comparison.
2013-07-21 21:05:48 +02:00
blake2-ppc
bfa9b43b71
dlist: Add bench test for rotate_to_{front, back}
2013-07-21 21:05:48 +02:00
blake2-ppc
b71c3d250f
dlist: Add .rotate_to_front(), .rotate_to_back()
...
Add methods to move back element to front or front element to back,
without reallocating nodes.
2013-07-21 19:31:40 +02:00
blake2-ppc
78d0cf1409
dlist: Factor out pop and push operations by list node
...
Factor out internal methods for pop/push ~Node<T>, This allows moving
nodes instead of destructuring and allocating new.
Make use of this in .merge() so that it requires no allocations when
merging two DList.
2013-07-21 19:31:40 +02:00
blake2-ppc
5336bdcab1
dlist: Simplify match clauses to use Option methods
...
Make the core Deque implementation a bit simpler by using Option methods
when we simply map on a Some value, and deduplicate some common lines.
2013-07-21 19:31:40 +02:00
blake2-ppc
fe134b9509
dlist: Implement Clone for immutable iterators
2013-07-20 20:30:58 +02:00
blake2-ppc
980646a450
Use Option .take() or .take_unwrap() instead of util::replace where possible
2013-07-20 05:12:05 -04:00
Patrick Walton
99b33f7219
librustc: Remove all uses of "copy".
2013-07-17 14:57:51 -07:00
Austin King
712ac836c6
Rename Option swap_unwrap to take_unwrap. Fixes Issue#7764
2013-07-16 12:47:01 -07:00
blake2-ppc
961184f852
dlist: Use inline on very small functions and iterator functions
2013-07-14 23:03:54 +02:00
blake2-ppc
7681cf62e3
dlist: Simplify by using Option::{map, map_mut}
...
These methods were fixed or just added so they can now be used.
2013-07-14 22:59:15 +02:00
blake2-ppc
c095a5c6cb
dlist: Use a DoubleEndedIterator for .mut_iter() and .mut_rev_iter()
...
Unify the mutable iterators too. Switch the ListInsertion trait to use
method .insert_next() and .peek_next() for list mutation. .insert_next()
inserts an element into the list that will not appear in iteration, of
course; so the length of the iteration can not change during iteration.
2013-07-13 04:31:13 +02:00
blake2-ppc
e1d5d1c049
dlist: Use DoubleEndedIterator for .consume_rev_iter()
2013-07-13 04:31:13 +02:00
blake2-ppc
89a0c99dbe
dlist: Implement DoubleEndedIterator and use for .iter() and .rev_iter()
2013-07-13 04:31:05 +02:00
blake2-ppc
c6e7890e13
dlist: Fix bug in DList::merge
...
Did not properly allow runs from the `other` list to be merged in. The
test case was using a wrong expected value.
Edited docs for merge so they explain more clearly what it does.
Also make sure insert_ordered is marked pub.
2013-07-13 04:30:15 +02:00
blake2-ppc
0f9b9a5fb7
extra: Mention extra::container::Deque trait in doc for RingBuf and DList
2013-07-11 16:17:51 +02:00
blake2-ppc
b2b88b326d
dlist: Name the type DList for doubly-linked list
2013-07-11 15:54:35 +02:00
blake2-ppc
a8e7bdd142
dlist: Fix license header
2013-07-11 15:54:35 +02:00
blake2-ppc
24d2d7b5bb
dlist: Implement trait Deque
2013-07-11 15:54:35 +02:00
blake2-ppc
92842d6516
dlist: Expose ListInsertion trait with insert_before and peek_next
...
An iterator that allows mutating the list is very useful but needs care
to not be unsound. ListIteration exposes only insert_before (used for
insert_ordered) and peek_next so far.
2013-07-11 15:54:35 +02:00
blake2-ppc
4fa69ab97c
dlist: Put all tests into a tests module
...
The exception is the function check_links which needs access to struct
Node (which is not pub).
2013-07-11 15:54:34 +02:00
blake2-ppc
8d06efb8ea
dlist: Collect a common pattern into link_with_prev()
2013-07-11 15:54:34 +02:00
blake2-ppc
7b1c57713d
dlist: Introduce a struct Rawlink mimicing Option<T> for a raw pointer
...
Rawlink<T> holds a *mut T pointer and can convert itself to Option<&mut T>.
The null pointer is of course None.
2013-07-11 15:54:34 +02:00
blake2-ppc
f97e64083b
dlist: Implement size_hint properly for all iterators
2013-07-11 15:52:21 +02:00
blake2-ppc
824bb44f92
dlist: A new implementation of an owned doubly-linked list
...
This is an owned sendable linked list which allows insertion and
deletion at both ends, with fast traversal through iteration, and fast
append/prepend.
It is indended to replace the previous managed DList with exposed list
nodes. It does not match it feature by feature, but DList could grow
more methods if needed.
2013-07-11 15:52:21 +02:00
Corey Richardson
1662bd371c
Great renaming: propagate throughout the rest of the codebase
2013-06-29 11:20:02 -04:00
Huon Wilson
d8087cae44
extra: silence some test warnings.
2013-06-28 00:50:48 +10:00
Daniel Micay
e2e39234cc
remove old_iter
...
the `test/run-pass/class-trait-bounded-param.rs` test was xfailed and
written in an ancient dialect of Rust so I've just removed it
this also removes `to_vec` from DList because it's provided by
`std::iter::to_vec`
an Iterator implementation is added for OptVec but some transitional
internal iterator methods are still left
2013-06-24 01:35:11 -04:00
Graydon Hoare
d904c72af8
replace #[inline(always)] with #[inline]. r=burningtree.
2013-06-18 14:48:48 -07:00
Niko Matsakis
eb48c29681
Add copies to type params with Copy bound
2013-06-16 12:47:36 -04:00
Daniel Micay
585f5f7f79
add IteratorUtil to the prelude
2013-06-14 23:15:42 -04:00
Huon Wilson
ed299af625
std: remove fold[lr] in favour of iterators
2013-06-09 02:22:23 +10:00
Patrick Walton
5fb254695b
Remove all uses of pub impl
. rs=style
2013-06-01 09:18:27 -07:00
Alex Crichton
395685079a
libextra: Require documentation by default
2013-05-30 01:03:15 -05:00
Patrick Walton
206ab89629
librustc: Stop reexporting the standard modules from prelude.
2013-05-29 19:04:53 -07:00
Erick Tryzelaar
609a9e69e1
cleanup warnings from libextra
2013-05-23 17:57:06 -07:00
Patrick Walton
ee52865c88
test: Update tests and import the prelude in some more places.
2013-05-22 21:57:10 -07:00
Patrick Walton
f3723cf7c4
libextra: Rename the actual metadata names of libcore to libstd and libstd to libextra
2013-05-22 21:57:07 -07:00
Patrick Walton
0c820d4123
libstd: Rename libcore to libstd and libstd to libextra; update makefiles.
...
This only changes the directory names; it does not change the "real"
metadata names.
2013-05-22 21:57:05 -07:00