Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improvements to the primitive str documentation #31930

Merged
merged 1 commit into from Feb 27, 2016
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 35 additions & 17 deletions src/libcollections/str.rs
Original file line number Diff line number Diff line change
Expand Up @@ -267,9 +267,11 @@ impl str {
/// Converts a string slice to a raw pointer.
///
/// As string slices are a slice of bytes, the raw pointer points to a
/// `u8`. This pointer will be pointing to the first byte of the string
/// [`u8`]. This pointer will be pointing to the first byte of the string
/// slice.
///
/// [`u8`]: primitive.u8.html
///
/// # Examples
///
/// Basic usage:
Expand Down Expand Up @@ -661,7 +663,7 @@ impl str {
/// assert_eq!(None, chars.next());
/// ```
///
/// Remember, `char`s may not match your human intuition about characters:
/// Remember, [`char`]s may not match your human intuition about characters:
///
/// ```
/// let y = "y̆";
Expand All @@ -678,16 +680,18 @@ impl str {
pub fn chars(&self) -> Chars {
core_str::StrExt::chars(self)
}
/// Returns an iterator over the `char`s of a string slice, and their
/// Returns an iterator over the [`char`]s of a string slice, and their
/// positions.
///
/// As a string slice consists of valid UTF-8, we can iterate through a
/// string slice by `char`. This method returns an iterator of both
/// these `char`s, as well as their byte positions.
/// string slice by [`char`]. This method returns an iterator of both
/// these [`char`]s, as well as their byte positions.
///
/// The iterator yields tuples. The position is first, the `char` is
/// The iterator yields tuples. The position is first, the [`char`] is
/// second.
///
/// [`char`]: primitive.char.html
///
/// # Examples
///
/// Basic usage:
Expand All @@ -711,7 +715,7 @@ impl str {
/// assert_eq!(None, char_indices.next());
/// ```
///
/// Remember, `char`s may not match your human intuition about characters:
/// Remember, [`char`]s may not match your human intuition about characters:
///
/// ```
/// let y = "y̆";
Expand Down Expand Up @@ -918,12 +922,13 @@ impl str {
/// Returns the byte index of the first character of this string slice that
/// matches the pattern.
///
/// Returns `None` if the pattern doesn't match.
/// Returns [`None`] if the pattern doesn't match.
///
/// The pattern can be a `&str`, [`char`], or a closure that determines if
/// a character matches.
///
/// [`char`]: primitive.char.html
/// [`None`]: option/enum.Option.html#variant.None
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ohhhh nice, I forgot we could link to these 👍

///
/// # Examples
///
Expand Down Expand Up @@ -962,12 +967,13 @@ impl str {
/// Returns the byte index of the last character of this string slice that
/// matches the pattern.
///
/// Returns `None` if the pattern doesn't match.
/// Returns [`None`] if the pattern doesn't match.
///
/// The pattern can be a `&str`, [`char`], or a closure that determines if
/// a character matches.
///
/// [`char`]: primitive.char.html
/// [`None`]: option/enum.Option.html#variant.None
///
/// # Examples
///
Expand Down Expand Up @@ -1187,14 +1193,18 @@ impl str {
/// An iterator over substrings of `self`, separated by characters
/// matched by a pattern and yielded in reverse order.
///
/// The pattern can be a simple `&str`, `char`, or a closure that
/// The pattern can be a simple `&str`, [`char`], or a closure that
/// determines the split.
/// Additional libraries might provide more complex patterns like
/// regular expressions.
///
/// Equivalent to `split`, except that the trailing substring is
/// [`char`]: primitive.char.html
///
/// Equivalent to [`split()`], except that the trailing substring is
/// skipped if empty.
///
/// [`split()`]: #method.split
///
/// This method can be used for string data that is _terminated_,
/// rather than _separated_ by a pattern.
///
Expand Down Expand Up @@ -1457,7 +1467,7 @@ impl str {
/// # Iterator behavior
///
/// The returned iterator requires that the pattern supports a reverse
/// search, and it will be a `[DoubleEndedIterator]` if a forward/reverse
/// search, and it will be a [`DoubleEndedIterator`] if a forward/reverse
/// search yields the same elements.
///
/// [`DoubleEndedIterator`]: iter/trait.DoubleEndedIterator.html
Expand Down Expand Up @@ -1694,9 +1704,11 @@ impl str {
///
/// # Errors
///
/// Will return `Err` if it's not possible to parse this string slice into
/// Will return [`Err`] if it's not possible to parse this string slice into
/// the desired type.
///
/// [`Err`]: str/trait.FromStr.html#associatedtype.Err
///
/// # Example
///
/// Basic usage
Expand All @@ -1707,7 +1719,7 @@ impl str {
/// assert_eq!(4, four);
/// ```
///
/// Using the 'turbofish' instead of annotationg `four`:
/// Using the 'turbofish' instead of annotating `four`:
///
/// ```
/// let four = "4".parse::<u32>();
Expand Down Expand Up @@ -1765,11 +1777,13 @@ impl str {
result
}

/// Returns the lowercase equivalent of this string slice, as a new `String`.
/// Returns the lowercase equivalent of this string slice, as a new [`String`].
///
/// 'Lowercase' is defined according to the terms of the Unicode Derived Core Property
/// `Lowercase`.
///
/// [`String`]: string/struct.String.html
///
/// # Examples
///
/// Basic usage:
Expand Down Expand Up @@ -1839,11 +1853,13 @@ impl str {
}
}

/// Returns the uppercase equivalent of this string slice, as a new `String`.
/// Returns the uppercase equivalent of this string slice, as a new [`String`].
///
/// 'Uppercase' is defined according to the terms of the Unicode Derived Core Property
/// `Uppercase`.
///
/// [`String`]: string/struct.String.html
///
/// # Examples
///
/// Basic usage:
Expand Down Expand Up @@ -1884,7 +1900,9 @@ impl str {
self.chars().flat_map(|c| c.escape_unicode()).collect()
}

/// Converts a `Box<str>` into a `String` without copying or allocating.
/// Converts a `Box<str>` into a [`String`] without copying or allocating.
///
/// [`String`]: string/struct.String.html
///
/// # Examples
///
Expand Down