Commit graph

5837 commits

Author SHA1 Message Date
Eduard-Mihai Burtescu
955458e346 Rollup merge of #35588 - Antti:fix-atomics-docs, r=alexcrichton
Use an existing constant name as an example.

By reading atomics documentation I tried to use `INIT_ATOMIC_BOOL`, which I couldn't find. Turns out it was renamed to `ATOMIC_BOOL_INIT`.
2016-08-14 20:29:50 +03:00
Eduard-Mihai Burtescu
fa57f358a3 Rollup merge of #35392 - malbarbo:cell-from, r=brson
Implement From for Cell, RefCell and UnsafeCell

Considering that `From` is implemented for `Box`, `Rc` and `Arc`, it seems [reasonable](https://internals.rust-lang.org/t/implementing-from-t-for-other-std-types/3744) to implement it for `Cell`, `RefCell` and `UnsafeCell`.
2016-08-14 20:29:47 +03:00
Jonathan Turner
6692f41e12 Rollup merge of #35562 - birkenfeld:as-mut-doc, r=steveklabnik
Remove redundant `&mut ref mut` in doc for Result::as_mut()

While a good example of how `&mut ref mut` is a no-op, I don't think we should show that here :)
See https://users.rust-lang.org/t/mnemonic-for-reading-qualifiers/6853

r? @steveklabnik
2016-08-11 06:34:01 -07:00
Jonathan Turner
476e49614d Rollup merge of #35279 - cengizIO:master, r=brson
Provide a cleaner documentation for 'write!'

Hello!

This is my attempt to fix #35110

Any feedback is more than welcome!

Cheers!
2016-08-11 06:33:57 -07:00
Andrii Dmytrenko
4b54dd7fd9
Use an existing constant name as an example. 2016-08-11 11:41:44 +01:00
Georg Brandl
70e760fc2f Remove redundant &mut ref mut in doc for Result::as_mut() 2016-08-10 08:15:57 +02:00
bors
c2b03f8ba9 Auto merge of #35425 - apasel422:refcell, r=alexcrichton
Implement `RefCell::{try_borrow, try_borrow_mut}`

CC #35070

r? @alexcrichton
2016-08-09 02:11:50 -07:00
bors
58c5716e2d Auto merge of #34762 - creativcoder:slice-ext, r=alexcrichton
extend lifetime on binary_search_by_key of SliceExt trait

Fixes #34683.
2016-08-08 21:51:01 -07:00
Andrew Paseltiner
a20a1db54a
Implement RefCell::{try_borrow, try_borrow_mut} 2016-08-08 23:59:56 -04:00
Rahul Sharma
6fd1752b25 extend lifetime on binary_search_by_key of SliceExt trait 2016-08-09 00:32:35 +05:30
Corey Farwell
95cce86fa9 Indicate tracking issue for exact_size_is_empty unstability. 2016-08-06 15:16:32 -04:00
Eduard-Mihai Burtescu
c1fe071cfd Rollup merge of #35281 - apasel422:repr, r=GuillaumeGomez
Clean up `std::raw` docs

There is no longer a `Repr` trait, so mentioning a missing impl of it was potentially confusing.

r? @steveklabnik
2016-08-06 15:01:20 +03:00
Andrew Paseltiner
da2b7a65b9
Clean up std::raw docs
There is no longer a `Repr` trait, so mentioning a missing impl of it
was potentially confusing.
2016-08-05 17:52:37 -04:00
Marco A L Barbosa
1403df72c8 Implement From for Cell, RefCell and UnsafeCell 2016-08-05 16:57:19 -03:00
Guillaume Gomez
494495267c Rollup merge of #35042 - Havvy:copy_error_doc, r=GuillaumeGomez
Add Derive not possible question to Copy

This adds a question and answer to the Q&A section of the Copy
docs. Specifically, it asks the question I asked while reading
the docs, and gives its answer.

cc @steveklabnik
2016-08-05 16:12:53 +02:00
bors
40f3ee2a01 Auto merge of #34520 - Manishearth:fix-unsafecell-docs, r=steveklabnik
Clarify UnsafeCell docs; fix #34496

None
2016-08-03 18:59:47 -07:00
Cengiz Can
c630beaed7 Be more explicit about duck typing 2016-08-04 04:33:50 +03:00
Cengiz Can
800aa92aa3 Use consistent spelling for word 'implementor' 2016-08-04 03:55:37 +03:00
Cengiz Can
15be66dc04 Provide a cleaner documentation for 'write!' 2016-08-04 03:11:50 +03:00
Jorge Aparicio
5f80104431 core: fix cargo build for targets with "max-atomic-width": 0
This crate was failing to compile due to dead_code/unused_imports
warnings. This commits disables these two lints for these targets.
2016-08-02 14:34:40 -05:00
Ryan Scheel (Havvy)
157f7c1b30 Add Derive not possible question to Copy
This adds a question and answer to the Q&A section of the Copy
docs. Specifically, it asks the question I asked while reading
the docs, and gives its answer.
2016-08-01 05:43:13 +00:00
Manish Goregaokar
6234610252 Rollup merge of #35058 - jethrogb:no_panic_abs, r=alexcrichton
Add non-panicking abs() functions to all signed integer types.

Currently, calling abs() on one of the signed integer types might panic (in
debug mode at least) because the absolute value of the largest negative value
can not be represented in that signed type. Unlike all other integer
operations, there is currently not a non-panicking version on this function.
This seems to just be an oversight in the design, therefore just adding it now.
2016-07-30 13:44:46 +05:30
Guillaume Gomez
3f06bf9afb Rollup merge of #35072 - munyari:assert_debug, r=steveklabnik
Update docs for assert! and debug_assert!

Refer to #34455
2016-07-29 11:57:54 +02:00
Guillaume Gomez
41c8d3f630 Rollup merge of #35062 - frewsxcv:chars-as-str, r=GuillaumeGomez
Add documentation example for `str::Chars::as_str`.

None
2016-07-29 11:57:53 +02:00
bors
d1df3fecdf Auto merge of #34485 - tbu-:pr_unicode_debug_str, r=alexcrichton
Escape fewer Unicode codepoints in `Debug` impl of `str`

Use the same procedure as Python to determine whether a character is
printable, described in [PEP 3138]. In particular, this means that the
following character classes are escaped:

- Cc (Other, Control)
- Cf (Other, Format)
- Cs (Other, Surrogate), even though they can't appear in Rust strings
- Co (Other, Private Use)
- Cn (Other, Not Assigned)
- Zl (Separator, Line)
- Zp (Separator, Paragraph)
- Zs (Separator, Space), except for the ASCII space `' '` `0x20`

This allows for user-friendly inspection of strings that are not
English (e.g. compare `"\u{e9}\u{e8}\u{ea}"` to `"éèê"`).

Fixes #34318.
CC #34422.

[PEP 3138]: https://www.python.org/dev/peps/pep-3138/
2016-07-28 11:20:33 -07:00
Jethro Beekman
cdc6afed38 Add non-panicking abs() functions to all signed integer types.
Currently, calling abs() on one of the signed integer types might panic (in
debug mode at least) because the absolute value of the largest negative value
can not be represented in that signed type. Unlike all other integer
operations, there is currently not a non-panicking version on this function.
This seems to just be an oversight in the design, therefore just adding it now.
2016-07-28 09:05:43 -07:00
Corey Farwell
f98c55d933 Add documentation example for str::Chars::as_str. 2016-07-28 08:54:48 -04:00
Tobias Bucher
3d09b4a0d5 Rename char::escape to char::escape_debug and add tracking issue 2016-07-28 02:20:49 +02:00
Panashe M. Fundira
9a7367b960
Mention debug_assert! in assert! doc 2016-07-27 15:16:11 -04:00
Panashe M. Fundira
8760b1dd26
Revert section about panic! in assert! doc 2016-07-27 15:03:23 -04:00
Panashe M. Fundira
91acc3977b
Correct minor typo in debug_assert doc 2016-07-27 15:01:43 -04:00
Panashe M. Fundira
a72767970a
Update docs for assert! and debug_assert! 2016-07-27 13:12:35 -04:00
Steve Klabnik
f57388844d Rollup merge of #34732 - durka:patch-27, r=steveklabnik
document DoubleEndedIterator::next_back

document DoubleEndedIterator::next_back

fixes #34726
2016-07-26 17:21:11 -04:00
Steve Klabnik
4c95b66465 Rollup merge of #34609 - ubsan:transmute_docs, r=steveklabnik
Add more docs - mostly warnings - to std::mem::transmute
2016-07-26 17:21:11 -04:00
Tobias Bucher
68efea08fa Restore char::escape_default and add char::escape instead 2016-07-26 15:15:00 +02:00
Manish Goregaokar
3873402805
Clarify UnsafeCell docs; fix #34496 2016-07-26 13:13:05 +05:30
Manish Goregaokar
10be6e6c9e Rollup merge of #34976 - GuillaumeGomez:build_hasher_doc, r=steveklabnik
Add BuildHasher example

r? @steveklabnik
2016-07-24 15:18:48 +05:30
Tobias Bucher
34f766e341 Fix indentation in src/libcore/lib.rs 2016-07-23 00:18:44 +02:00
Tobias Bucher
e7d16580f5 Escape fewer Unicode codepoints in Debug impl of str
Use the same procedure as Python to determine whether a character is
printable, described in [PEP 3138]. In particular, this means that the
following character classes are escaped:

- Cc (Other, Control)
- Cf (Other, Format)
- Cs (Other, Surrogate), even though they can't appear in Rust strings
- Co (Other, Private Use)
- Cn (Other, Not Assigned)
- Zl (Separator, Line)
- Zp (Separator, Paragraph)
- Zs (Separator, Space), except for the ASCII space `' '` (`0x20`)

This allows for user-friendly inspection of strings that are not
English (e.g. compare `"\u{e9}\u{e8}\u{ea}"` to `"éèê"`).

Fixes #34318.

[PEP 3138]: https://www.python.org/dev/peps/pep-3138/
2016-07-23 00:18:44 +02:00
ggomez
890706070d Add BuildHasher example 2016-07-22 16:38:16 +02:00
bors
62690b3c3f Auto merge of #34544 - 3Hren:issue/xx/reinterpret-format-precision-for-strings, r=alexcrichton
feat: reinterpret `precision` field for strings

This commit changes the behavior of formatting string arguments with both width and precision fields set.

Documentation says that the `width` field is the "minimum width" that the format should take up. If the value's string does not fill up this many characters, then the padding specified by fill/alignment will be used to take up the required space.

This is true for all formatted types except string, which is truncated down to `precision` number of chars and then all of `fill`, `align` and `width` fields are completely ignored.

For example: `format!("{:/^10.8}", "1234567890);` emits "12345678". In the contrast Python version works as the expected:
```python
>>> '{:/^10.8}'.format('1234567890')
'/12345678/'
```

This commit gives back the `Python` behavior by changing the `precision` field meaning to the truncation and nothing more. The result string *will* be prepended/appended up to the `width` field with the proper `fill` char.

__However, this is the breaking change, I admit.__ Feel free to close it, but otherwise it should be mentioned in the `std::fmt` documentation somewhere near of `fill/align/width` fields description.
2016-07-21 16:19:54 -07:00
ubsan
24f8589bf3 Fix nits 2016-07-21 12:57:42 -07:00
Guillaume Gomez
bcbe27cbf9 Rollup merge of #34828 - seanmonstar:into-opton, r=alexcrichton
core: impl From<T> for Option<T>

First, the semantics of this `impl` seem spot on. If I have a value `T`, and I wish to make a `Option<T>`, then `Option::from(val)` should always give `Some(val)`.

Second, this allows improvement for several APIs that currently take `Option<T>` as arguments. Consider:

```rust
fn set_read_timeout(&mut self, timeout: Option<u32>) {
    // ...
}

x.set_read_timeout(Some(30));
x.set_read_timeout(Some(10));
x.set_read_timeout(None);
```

With this `impl`:

```rust
fn set_read_timeout<T: Into<Option<u32>>>(&mut self, timeout: T) {
    let timeout = timeout.into();
    // ...
}

x.set_read_timeout(30);
x.set_read_timeout(10);
x.set_read_timeout(Some(10)); // backwards compatible
x.set_read_timeout(None);
```

The change to those methods aren't included, but could be modified later.

r? @sfackler
2016-07-21 11:26:57 +02:00
Sean McArthur
fbfee42a2f core: impl From<T> for Option<T> 2016-07-20 15:54:54 -07:00
bors
27e766d7bc Auto merge of #34898 - sanxiyn:rollup, r=sanxiyn
Rollup of 5 pull requests

- Successful merges: #34807, #34853, #34875, #34884, #34889
- Failed merges:
2016-07-19 05:12:51 -07:00
bors
8052f73d7b Auto merge of #34879 - petrochenkov:fnptr, r=alexcrichton
Implement traits for variadic function pointers

Closes https://github.com/rust-lang/rust/issues/34874
cc https://github.com/rust-lang/rust/pull/28268

r? @alexcrichton
2016-07-18 18:09:25 -07:00
bors
bbfcb471db Auto merge of #34357 - tbu-:pr_exact_size_is_empty, r=brson
Add `is_empty` function to `ExactSizeIterator`

All other types implementing a `len` functions have `is_empty` already.
2016-07-18 14:26:22 -07:00
Tobias Bucher
7b2a03f08e Fix doctest of ExactSizeIterator::is_empty 2016-07-18 18:35:08 +02:00
Seo Sanghyeon
b7138494ef Rollup merge of #34875 - frewsxcv:std-slice-struct, r=GuillaumeGomez
Indicate where `std::slice` structs originate from.

None
2016-07-18 22:44:56 +09:00
Corey Farwell
b2f5b5a812 Indicate where std::slice structs originate from. 2016-07-17 09:16:47 -04:00