Commit graph

404 commits

Author SHA1 Message Date
Corey Farwell
69717170a4 Rollup merge of #40456 - frewsxcv:frewsxcv-docs-function-parens, r=GuillaumeGomez
Remove function invokation parens from documentation links.

This was never established as a convention we should follow in the 'More
API Documentation Conventions' RFC:

https://github.com/rust-lang/rfcs/blob/master/text/1574-more-api-documentation-conventions.md
2017-03-17 08:48:51 -04:00
Corey Farwell
e7b0f2badf Remove function invokation parens from documentation links.
This was never established as a convention we should follow in the 'More
API Documentation Conventions' RFC:

https://github.com/rust-lang/rfcs/blob/master/text/1574-more-api-documentation-conventions.md
2017-03-13 21:43:18 -04:00
Clar Charr
560944b982 Add From<Box<..>> implementations. 2017-03-10 14:57:57 -05:00
Joshua Horwitz
86bad49ec1 Issue #39688 - Help people find String::as_bytes() for UTF-8 r? @steveklabnik 2017-03-05 19:56:51 -05:00
bors
1476105dd3 Auto merge of #40189 - SimonSapin:one-width, r=alexcrichton
Reduce std_unicode’s public API

 * Only keep one copy of the `UTF8_CHAR_WIDTH` table instead of one of each of libcore and libstd_unicode.
* Move the `utf8_char_width` function to `core::str` under the `str_internals` unstable feature.
* Remove `std_unicode::str::is_utf16`. It was only accessible through the `#[unstable]` crate std_unicode. It has never been used in the compiler or standard library since 47e7a05 added it in 2012 “for OS API interop”. It can be replaced with a one-liner:

   ```rust
   fn is_utf16(slice: &[u16]) -> bool {
       std::char::decode_utf16(s).all(|r| r.is_ok())
   }
   ```
2017-03-03 09:57:57 +00:00
Corey Farwell
0536fd6396 Rollup merge of #40117 - SimonSapin:to-err-is-for-the-formatter, r=alexcrichton
Panic on errors in `format!` or `<T: Display>::to_string`

… instead of silently ignoring a result.

`fmt::Write for String` never returns `Err`, so implementations of `Display` (or other traits of that family) never should either.

Fixes #40103
2017-03-02 14:53:44 -05:00
Simon Sapin
f2017f4561 Panic on errors in format! or <T: Display>::to_string
… instead of silently ignoring a result.

`fmt::Write for String` never returns `Err`,
so implementations of `Display` (or other traits of that family)
never should either.

Fixes #40103
2017-03-01 23:47:59 +01:00
Simon Sapin
031f9b15df Only keep one copy of the UTF8_CHAR_WIDTH table.
… instead of one of each of libcore and libstd_unicode.

Move the `utf8_char_width` function to `core::str`
under the `str_internals` unstable feature.
2017-03-01 23:25:27 +01:00
Corey Farwell
0a008b949e Rollup merge of #40028 - withoutboats:string_from_iter, r=alexcrichton
impl FromIterator<&char> for String
2017-02-28 22:55:30 -05:00
bors
60a0edc6c2 Auto merge of #39738 - keeperofdakeys:vec-docs, r=GuillaumeGomez
Add notes about capacity effects to Vec::truncate()

Add notes about the effects of Vec::truncate() and Vec::clear() on the capacity of a vector.
2017-02-26 20:36:10 +00:00
Guillaume Gomez
3b10300e0a Rollup merge of #39886 - mbrubeck:doc-edit, r=steveklabnik
Additional docs for Vec, String, and slice trait impls

r? @steveklabnik
2017-02-24 13:22:54 +01:00
Without Boats
097398e383 impl FromIter<&char> for String 2017-02-22 00:06:40 -08:00
Steven Allen
eec9e988e1 Fixup String::split_off documentation
1. Clarify that `String::split_off` returns one string and modifies self
   in-place. The documentation implied that it returns two new strings.

2. Make the documentation mirror `Vec::split_off`.
2017-02-16 22:49:46 -08:00
Matt Brubeck
b2ac1c9c6b Additional docs for Vec, String, and slice trait impls 2017-02-16 12:12:17 -08:00
Josh
4be5783748 Add notes about capacity effects to Vec::truncate() 2017-02-14 19:31:46 +10:30
bors
a797b6e2fe Auto merge of #39002 - GuillaumeGomez:debug_libcollections, r=aturon
Add Debug implementations for libcollection structs

Part of #31869.
2017-02-07 17:28:51 +00:00
Guillaume Gomez
0cc2448e05 Replace PlaceBack Debug implementation with derive 2017-02-05 09:46:15 +01:00
f001
dfcca546fc std: Add ToString trait specialization for Cow<'a, str> and String
r? @bluss
2017-02-01 19:17:51 +08:00
Alex Crichton
671b1c1d89 std: Stabilize APIs for the 1.16.0 release
This commit applies the stabilization/deprecations of the 1.16.0 release, as
tracked by the rust-lang/rust issue tracker and the final-comment-period tag.

The following APIs were stabilized:

* `VecDeque::truncate`
* `VecDeque::resize`
* `String::insert_str`
* `Duration::checked_{add,sub,div,mul}`
* `str::replacen`
* `SocketAddr::is_ipv{4,6}`
* `IpAddr::is_ipv{4,6}`
* `str::repeat`
* `Vec::dedup_by`
* `Vec::dedup_by_key`
* `Result::unwrap_or_default`
* `<*const T>::wrapping_offset`
* `<*mut T>::wrapping_offset`
* `CommandExt::creation_flags` (on Windows)
* `File::set_permissions`
* `String::split_off`

The following APIs were deprecated

* `EnumSet` - replaced with other ecosystem abstractions, long since unstable

Closes #27788
Closes #35553
Closes #35774
Closes #36436
Closes #36949
Closes #37079
Closes #37087
Closes #37516
Closes #37827
Closes #37916
Closes #37966
Closes #38080
2017-01-25 16:43:01 -08:00
Guillaume Gomez
61fbdbba41 Add Debug implementations for libcollection structs 2017-01-20 21:48:35 +01:00
djzin
35f23e8211 have RangeArgument return a Bound<&T> from each of its methods 2017-01-14 16:51:50 +00:00
Srinivas Reddy Thatiparthy
6414e67dba
run rustfmt on libcollections folder 2016-12-20 09:54:00 +05:30
bors
b4b1e5ece2 Auto merge of #38049 - frewsxcv:libunicode, r=alexcrichton
Rename 'librustc_unicode' crate to 'libstd_unicode'.

Fixes https://github.com/rust-lang/rust/issues/26554.
2016-12-12 13:19:33 +00:00
Clar Charr
4dd590ac8c Remove redundant assertion near is_char_boundary. 2016-12-03 12:14:39 -05:00
Clar Charr
cbf734f9ab Add String::split_off. 2016-11-30 23:24:57 -05:00
Corey Farwell
274777a158 Rename 'librustc_unicode' crate to 'libstd_unicode'.
Fixes #26554.
2016-11-30 01:24:01 -05:00
leonardo.yvens
3e4bd88438 Change Into<Vec<u8>> for String and Into<OsString> for PathBuf to From impls 2016-11-04 15:54:08 -02:00
bors
40f79ba8c9 Auto merge of #37327 - aidanhs:aphs-bytes-iter-doc, r=alexcrichton
`as_bytes` is not the iterator on String, `bytes` is

r? @steveklabnik
2016-10-22 23:02:24 -07:00
Aidan Hobson Sayers
dceb2c9cd2 as_bytes is not the iterator, bytes is 2016-10-21 18:28:02 +01:00
Simon Sapin
7e603d4e3b Implement From<Cow<str>> for String and From<Cow<[T]>> for Vec<T>.
Motivation: the `selectors` crate is generic over a string type,
in order to support all of `String`, `string_cache::Atom`, and
`gecko_string_cache::Atom`. Multiple trait bounds are used
for the various operations done with these strings.
One of these operations is creating a string (as efficiently as possible,
re-using an existing memory allocation if possible) from `Cow<str>`.

The `std::convert::From` trait seems natural for this, but
the relevant implementation was missing before this PR.
To work around this I’ve added a `FromCowStr` trait in `selectors`,
but with trait coherence that means one of `selectors` or `string_cache`
needs to depend on the other to implement this trait.
Using a trait from `std` would solve this.

The `Vec<T>` implementation is just added for consistency.
I also tried a more general
`impl<'a, O, B: ?Sized + ToOwned<Owned=O>> From<Cow<'a, B>> for O`,
but (the compiler thinks?) it conflicts with `From<T> for T` the impl
(after moving all of `collections::borrow` into `core::borrow`
to work around trait coherence).
2016-10-21 17:42:29 +02:00
Guillaume Gomez
3c66f96aac Add missing urls on String module 2016-10-10 18:15:55 +02:00
Steve Klabnik
cabfa99199 Rollup merge of #36623 - GuillaumeGomez:doc_typos, r=steveklabnik
Fix some typos and improve doc comments style

r? @steveklabnik
2016-09-30 13:44:46 -04:00
tormol
13a2dd96fe [breaking-change] std: change encode_utf{8,16}() to take a buffer and return a slice
They panic if the buffer is too small.
2016-09-28 09:03:30 +02:00
Guillaume Gomez
323701e345 Fix some typos and improve doc comments style 2016-09-24 18:48:15 +02:00
Brian Anderson
2e02803c73 Revert "implement From<Vec<char>> and From<&'a [char]> for String"
This reverts commit ac73335f2f.
2016-09-23 17:25:26 +00:00
athulappadan
49e77dbf25 Documentation of what does for each type 2016-09-11 17:00:09 +05:30
bors
0bd99f9d5c Auto merge of #35656 - Stebalien:fused, r=alexcrichton
Implement 1581 (FusedIterator)

* [ ] Implement on patterns. See https://github.com/rust-lang/rust/issues/27721#issuecomment-239638642.
* [ ] Handle OS Iterators. A bunch of iterators (`Args`, `Env`, etc.) in libstd wrap platform specific iterators. The current ones all appear to be well-behaved but can we assume that future ones will be?
* [ ] Does someone want to audit this? On first glance, all of the iterators on which I implemented `FusedIterator` appear to be well-behaved but there are a *lot* of them so a second pair of eyes would be nice.
* I haven't touched rustc internal iterators (or the internal rand) because rustc doesn't actually call `fuse()`.
* `FusedIterator` can't be implemented on `std::io::{Bytes, Chars}`.

Closes: #35602 (Tracking Issue)
Implements: rust-lang/rfcs#1581
2016-08-23 07:46:52 -07:00
Christopher Serr
18445cd6cc Fix "Furthermore" Typo in String Docs
It used to say "Furtheremore" instead of "Furthermore".
2016-08-21 22:51:37 +02:00
Steven Allen
de91872a33 Add a FusedIterator trait.
This trait can be used to avoid the overhead of a fuse wrapper when an iterator
is already well-behaved.

Conforming to: RFC 1581
Closes: #35602
2016-08-18 12:16:29 -04:00
Eduard-Mihai Burtescu
b975a120e1 Rollup merge of #35598 - tshepang:needless-binding, r=steveklabnik
string: remove needless binding
2016-08-14 20:29:50 +03:00
Eduard-Mihai Burtescu
322aa6e021 Rollup merge of #35597 - tshepang:it-is-a-slice, r=steveklabnik
doc: a value of type `&str` is called a "string slice"
2016-08-14 20:29:50 +03:00
Tshepang Lekhonkhobe
071410ba57 string: remove needless binding 2016-08-11 20:44:49 +02:00
Tshepang Lekhonkhobe
c99c2ea838 doc: a value of type &str is called a "string slice" 2016-08-11 20:41:31 +02:00
Murarth
0a3564afaf Add tracking issue for String::insert_str 2016-08-09 11:42:16 -07:00
Alexander Altman
42e64bc5f2 Add FromIterator implementations for Cow<str>
This seems like an oversight, since the corresponding implementation for `Cow<[T]> where T: Clone` exists.
2016-08-07 13:41:31 -07:00
Paul Woolcock
ac73335f2f implement From<Vec<char>> and From<&'a [char]> for String
Though there are ways to convert a slice or vec of chars into a string,
it would be nice to be able to just do `String::from(['a', 'b', 'c'])`,
so this PR implements `From<Vec<char>>` and `From<&'a [char]>` for
String.
2016-07-27 12:07:49 -04:00
bors
d15e2656e5 Auto merge of #34771 - murarth:string-insert-str, r=alexcrichton
Add method `String::insert_str`
2016-07-22 01:36:22 -07:00
Guillaume Gomez
4817c5e53d Rollup merge of #34890 - oconnor663:addassign, r=brson
implement AddAssign for String

Currently `String` implements `Add` but not `AddAssign`. This PR fills in that gap.

I played around with having `AddAssign` (and `Add` and `push_str`) take `AsRef<str>` instead of `&str`, but it looks like that breaks arguments that implement `Deref<Target=str>` and not `AsRef<str>`. Comments in [`libcore/convert.rs`](https://github.com/rust-lang/rust/blob/master/src/libcore/convert.rs#L207-L213) make it sound like we could fix this with a blanket impl eventually. Does anyone know what's blocking that?
2016-07-21 11:27:00 +02:00
Jack O'Connor
9b8130666d use a new feature name for String AddAssign 2016-07-18 14:27:17 -04:00
Jack O'Connor
cac58ab5b7 update the since field to 1.12.0 for String AddAssign 2016-07-18 14:00:35 -04:00