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

Some minor docs improvements for TRPL #30755

Merged
merged 5 commits into from
Jan 9, 2016
Merged
Show file tree
Hide file tree
Changes from 4 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
2 changes: 1 addition & 1 deletion src/doc/book/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ Even then, Rust still allows precise control like a low-level language would.

[rust]: https://www.rust-lang.org

“The Rust Programming Language” is split into sections. This introduction
“The Rust Programming Language” is split into chapters. This introduction
Copy link
Member

Choose a reason for hiding this comment

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

This has always been a confusing-ish pain point: what is a section and what is a chapter? Syntax and Semantics is wayyy to long for a chapter, but the others are too short.

Oh well.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Considered LaTeX-style Part / Chapter / Section divisions? Not all Parts need to be broken into Chapters, iirc. But maybe this is only intuitive for me because I've authored LaTeX documents before. Probably not worth a bikeshed discussion, so I won't modify this any further within this PR.

is the first. After this:

* [Getting started][gs] - Set up your computer for Rust development.
Expand Down
2 changes: 1 addition & 1 deletion src/doc/book/closures.md
Original file line number Diff line number Diff line change
Expand Up @@ -208,7 +208,7 @@ different.

Rust’s implementation of closures is a bit different than other languages. They
are effectively syntax sugar for traits. You’ll want to make sure to have read
the [traits chapter][traits] before this one, as well as the chapter on [trait
the [traits][traits] section before this one, as well as the section on [trait
objects][trait-objects].

[traits]: traits.html
Expand Down
2 changes: 1 addition & 1 deletion src/doc/book/effective-rust.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,6 @@
So you’ve learned how to write some Rust code. But there’s a difference between
writing *any* Rust code and writing *good* Rust code.

This section consists of relatively independent tutorials which show you how to
This chapter consists of relatively independent tutorials which show you how to
take your Rust to the next level. Common patterns and standard library features
will be introduced. Read these sections in any order of your choosing.
18 changes: 9 additions & 9 deletions src/doc/book/error-handling.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,18 +5,18 @@ errors in a particular way. Generally speaking, error handling is divided into
two broad categories: exceptions and return values. Rust opts for return
values.

In this chapter, we intend to provide a comprehensive treatment of how to deal
In this section, we intend to provide a comprehensive treatment of how to deal
with errors in Rust. More than that, we will attempt to introduce error handling
one piece at a time so that you'll come away with a solid working knowledge of
how everything fits together.

When done naïvely, error handling in Rust can be verbose and annoying. This
chapter will explore those stumbling blocks and demonstrate how to use the
section will explore those stumbling blocks and demonstrate how to use the
standard library to make error handling concise and ergonomic.

# Table of Contents

This chapter is very long, mostly because we start at the very beginning with
This section is very long, mostly because we start at the very beginning with
sum types and combinators, and try to motivate the way Rust does error handling
incrementally. As such, programmers with experience in other expressive type
systems may want to jump around.
Expand Down Expand Up @@ -636,7 +636,7 @@ Thus far, we've looked at error handling where everything was either an
`Option` and a `Result`? Or what if you have a `Result<T, Error1>` and a
`Result<T, Error2>`? Handling *composition of distinct error types* is the next
challenge in front of us, and it will be the major theme throughout the rest of
this chapter.
this section.

## Composing `Option` and `Result`

Expand All @@ -648,7 +648,7 @@ Of course, in real code, things aren't always as clean. Sometimes you have a
mix of `Option` and `Result` types. Must we resort to explicit case analysis,
or can we continue using combinators?

For now, let's revisit one of the first examples in this chapter:
For now, let's revisit one of the first examples in this section:

```rust,should_panic
use std::env;
Expand Down Expand Up @@ -1319,7 +1319,7 @@ and [`cause`](../std/error/trait.Error.html#method.cause), but the
limitation remains: `Box<Error>` is opaque. (N.B. This isn't entirely
true because Rust does have runtime reflection, which is useful in
some scenarios that are [beyond the scope of this
chapter](https://crates.io/crates/error).)
section](https://crates.io/crates/error).)

It's time to revisit our custom `CliError` type and tie everything together.

Expand Down Expand Up @@ -1486,7 +1486,7 @@ and [`fmt::Result`](../std/fmt/type.Result.html).

# Case study: A program to read population data

This chapter was long, and depending on your background, it might be
This section was long, and depending on your background, it might be
rather dense. While there is plenty of example code to go along with
the prose, most of it was specifically designed to be pedagogical. So,
we're going to do something new: a case study.
Expand All @@ -1512,7 +1512,7 @@ and [`rustc-serialize`](https://crates.io/crates/rustc-serialize) crates.

We're not going to spend a lot of time on setting up a project with
Cargo because it is already covered well in [the Cargo
chapter](../book/hello-cargo.html) and [Cargo's documentation][14].
section](../book/hello-cargo.html) and [Cargo's documentation][14].

To get started from scratch, run `cargo new --bin city-pop` and make sure your
`Cargo.toml` looks something like this:
Expand Down Expand Up @@ -2108,7 +2108,7 @@ handling.

# The Short Story

Since this chapter is long, it is useful to have a quick summary for error
Since this section is long, it is useful to have a quick summary for error
handling in Rust. These are some good “rules of thumb." They are emphatically
*not* commandments. There are probably good reasons to break every one of these
heuristics!
Expand Down
4 changes: 2 additions & 2 deletions src/doc/book/getting-started.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
% Getting Started

This first section of the book will get us going with Rust and its tooling.
This first chapter of the book will get us going with Rust and its tooling.
First, we’ll install Rust. Then, the classic ‘Hello World’ program. Finally,
we’ll talk about Cargo, Rust’s build system and package manager.

# Installing Rust

The first step to using Rust is to install it. Generally speaking, you’ll need
an Internet connection to run the commands in this chapter, as we’ll be
an Internet connection to run the commands in this section, as we’ll be
downloading Rust from the internet.

We’ll be showing off a number of commands using a terminal, and those lines all
Expand Down
2 changes: 1 addition & 1 deletion src/doc/book/guessing-game.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ prompt us to enter a guess. Upon entering our guess, it will tell us if we’re
too low or too high. Once we guess correctly, it will congratulate us. Sounds
good?

Along the way, we’ll learn a little bit about Rust. The next section, ‘Syntax
Along the way, we’ll learn a little bit about Rust. The next chapter, ‘Syntax
and Semantics’, will dive deeper into each part.

# Set up
Expand Down
2 changes: 1 addition & 1 deletion src/doc/book/learn-rust.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
% Learn Rust

Welcome! This section has a few tutorials that teach you Rust through building
Welcome! This chapter has a few tutorials that teach you Rust through building
projects. You’ll get a high-level overview, but we’ll skim over the details.

If you’d prefer a more ‘from the ground up’-style experience, check
Expand Down
21 changes: 15 additions & 6 deletions src/doc/book/ownership.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,15 +51,24 @@ fn foo() {
}
```

When `v` comes into scope, a new [`Vec<T>`][vect] is created. In this case, the
vector also allocates space on [the heap][heap], for the three elements. When
`v` goes out of scope at the end of `foo()`, Rust will clean up everything
related to the vector, even the heap-allocated memory. This happens
deterministically, at the end of the scope.
When `v` comes into scope, a new [vector][] is created, and it allocates space
Copy link
Member

Choose a reason for hiding this comment

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

You don't need the empty []s here, or anywhere else.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Was going to blame my preferred markdown tool for not supporting this syntax, turns out it does! Today I learned. Will fix.

on the heap for each of its elements. When `v` goes out of scope at the end of
Copy link
Member

Choose a reason for hiding this comment

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

Keep the link to the heap section?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Oops! That was accidental. Will do.

`foo()`, Rust will clean up everything related to the vector, even the
heap-allocated memory. This happens deterministically, at the end of the scope.

[vect]: ../std/vec/struct.Vec.html
We'll cover [vectors][vector] in detail later in this chapter; we only use them
here as an example of a type that allocates space on the heap at runtime. They
behave like [arrays][], except their size may change by `push()`ing more
elements onto them.

Vectors have a [generic type][generics] `Vec<T>`, so in this example `v` will have type
`Vec<i32>`. We'll cover generics in detail later in this chapter.

[arrays]: primitive-types.html#arrays
[vector]: vectors.html
[heap]: the-stack-and-the-heap.html
[bindings]: variable-bindings.html
[generics]: generics.html

# Move semantics

Expand Down
13 changes: 9 additions & 4 deletions src/doc/book/primitive-types.md
Original file line number Diff line number Diff line change
Expand Up @@ -167,8 +167,11 @@ variable binding. Slices have a defined length, can be mutable or immutable.
## Slicing syntax

You can use a combo of `&` and `[]` to create a slice from various things. The
`&` indicates that slices are similar to references, and the `[]`s, with a
range, let you define the length of the slice:
`&` indicates that slices are similar to [references][], which we will cover in
detail later in this section. The `[]`s, with a range, let you define the
length of the slice:

[references]: references-and-borrowing.html

```rust
let a = [0, 1, 2, 3, 4];
Expand All @@ -189,11 +192,13 @@ documentation][slice].
# `str`

Rust’s `str` type is the most primitive string type. As an [unsized type][dst],
it’s not very useful by itself, but becomes useful when placed behind a reference,
like [`&str`][strings]. As such, we’ll just leave it at that.
it’s not very useful by itself, but becomes useful when placed behind a
reference, like `&str`. We'll elaborate further when we cover
[Strings][strings] and [references][].

[dst]: unsized-types.html
[strings]: strings.html
[references]: references-and-borrowing.html

You can find more documentation for `str` [in the standard library
documentation][str].
Expand Down
2 changes: 1 addition & 1 deletion src/doc/book/syntax-and-semantics.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
% Syntax and Semantics

This section breaks Rust down into small chunks, one for each concept.
This chapter breaks Rust down into small chunks, one for each concept.

If you’d like to learn Rust from the bottom up, reading this in order is a
great way to do that.
Expand Down