Commit Graph

62 Commits

Author SHA1 Message Date
Henri Sivonen
e36f59e1a2 Explain why zero-length slices require a non-null pointer 2017-04-28 12:25:02 +03:00
Ulrik Sverdrup
5d2f270395 slice: Implement .rfind() for slice iterators Iter and IterMut
Just like the forward case find, implement rfind explicitly
2017-04-08 03:45:48 +02:00
Ariel Ben-Yehuda
d8b61091f6 Rollup merge of #41065 - jorendorff:slice-rsplit-41020, r=alexcrichton
[T]::rsplit() and rsplit_mut(), #41020
2017-04-05 23:01:13 +00:00
Ariel Ben-Yehuda
9d074473da Rollup merge of #40943 - Amanieu:offset_to, r=alexcrichton
Add ptr::offset_to

This PR adds a method to calculate the signed distance (in number of elements) between two pointers. The resulting value can then be passed to `offset` to get one pointer from the other. This is similar to pointer subtraction in C/C++.

There are 2 special cases:

- If the distance is not a multiple of the element size then the result is rounded towards zero. (in C/C++ this is UB)
-  ZST return `None`, while normal types return `Some(isize)`. This forces the user to handle the ZST case in unsafe code. (C/C++ doesn't have ZSTs)
2017-04-05 23:01:08 +00:00
Jason Orendorff
a45fedfa38 simplify implementation of [T]::splitn and friends #41020 2017-04-04 13:40:56 -05:00
Jason Orendorff
2e3f0d8451 add [T]::rsplit() and rsplit_mut() #41020 2017-04-04 13:40:26 -05:00
Amanieu d'Antras
7b89bd7cca Add ptr::offset_to 2017-04-03 01:36:56 +01:00
bors
a9329d3aa3 Auto merge of #40737 - nagisa:safe-slicing-strs, r=BurntSushi
Checked slicing for strings

cc https://github.com/rust-lang/rust/issues/39932
2017-03-31 11:13:20 +00:00
Simonas Kazlauskas
2f0dd63bbe Checked (and unchecked) slicing for strings?
What is this magic‽
2017-03-22 18:43:01 +02:00
Stjepan Glavina
d6da1d9b46 Various fixes to wording consistency in the docs 2017-03-22 17:19:52 +01:00
Stjepan Glavina
a718051f63 Unit test heapsort 2017-03-21 20:46:20 +01:00
Stjepan Glavina
f1913e2a30 Implement feature sort_unstable 2017-03-21 20:46:20 +01:00