]>
Commit | Line | Data |
---|---|---|
cc61c64b XL |
1 | # The Rust Programming Language |
2 | ||
3 | ## Getting started | |
4 | ||
5 | - [Introduction](ch01-00-introduction.md) | |
6 | - [Installation](ch01-01-installation.md) | |
7 | - [Hello, World!](ch01-02-hello-world.md) | |
8 | ||
9 | - [Guessing Game Tutorial](ch02-00-guessing-game-tutorial.md) | |
10 | ||
11 | - [Common Programming Concepts](ch03-00-common-programming-concepts.md) | |
12 | - [Variables and Mutability](ch03-01-variables-and-mutability.md) | |
13 | - [Data Types](ch03-02-data-types.md) | |
14 | - [How Functions Work](ch03-03-how-functions-work.md) | |
15 | - [Comments](ch03-04-comments.md) | |
16 | - [Control Flow](ch03-05-control-flow.md) | |
17 | ||
18 | - [Understanding Ownership](ch04-00-understanding-ownership.md) | |
19 | - [What is Ownership?](ch04-01-what-is-ownership.md) | |
20 | - [References & Borrowing](ch04-02-references-and-borrowing.md) | |
21 | - [Slices](ch04-03-slices.md) | |
22 | ||
7cac9316 XL |
23 | - [Using Structs to Structure Related Data](ch05-00-structs.md) |
24 | - [Defining and Instantiating Structs](ch05-01-defining-structs.md) | |
25 | - [An Example Program Using Structs](ch05-02-example-structs.md) | |
26 | - [Method Syntax](ch05-03-method-syntax.md) | |
cc61c64b XL |
27 | |
28 | - [Enums and Pattern Matching](ch06-00-enums.md) | |
29 | - [Defining an Enum](ch06-01-defining-an-enum.md) | |
30 | - [The `match` Control Flow Operator](ch06-02-match.md) | |
31 | - [Concise Control Flow with `if let`](ch06-03-if-let.md) | |
32 | ||
33 | ## Basic Rust Literacy | |
34 | ||
35 | - [Modules](ch07-00-modules.md) | |
36 | - [`mod` and the Filesystem](ch07-01-mod-and-the-filesystem.md) | |
37 | - [Controlling Visibility with `pub`](ch07-02-controlling-visibility-with-pub.md) | |
abe05a73 | 38 | - [Referring to Names in Different Modules](ch07-03-importing-names-with-use.md) |
cc61c64b XL |
39 | |
40 | - [Common Collections](ch08-00-common-collections.md) | |
41 | - [Vectors](ch08-01-vectors.md) | |
42 | - [Strings](ch08-02-strings.md) | |
43 | - [Hash Maps](ch08-03-hash-maps.md) | |
44 | ||
45 | - [Error Handling](ch09-00-error-handling.md) | |
46 | - [Unrecoverable Errors with `panic!`](ch09-01-unrecoverable-errors-with-panic.md) | |
47 | - [Recoverable Errors with `Result`](ch09-02-recoverable-errors-with-result.md) | |
48 | - [To `panic!` or Not To `panic!`](ch09-03-to-panic-or-not-to-panic.md) | |
49 | ||
50 | - [Generic Types, Traits, and Lifetimes](ch10-00-generics.md) | |
51 | - [Generic Data Types](ch10-01-syntax.md) | |
52 | - [Traits: Defining Shared Behavior](ch10-02-traits.md) | |
53 | - [Validating References with Lifetimes](ch10-03-lifetime-syntax.md) | |
54 | ||
55 | - [Testing](ch11-00-testing.md) | |
56 | - [Writing tests](ch11-01-writing-tests.md) | |
57 | - [Running tests](ch11-02-running-tests.md) | |
58 | - [Test Organization](ch11-03-test-organization.md) | |
59 | ||
041b39d2 | 60 | - [An I/O Project: Building a Command Line Program](ch12-00-an-io-project.md) |
cc61c64b XL |
61 | - [Accepting Command Line Arguments](ch12-01-accepting-command-line-arguments.md) |
62 | - [Reading a File](ch12-02-reading-a-file.md) | |
041b39d2 | 63 | - [Refactoring to Improve Modularity and Error Handling](ch12-03-improving-error-handling-and-modularity.md) |
3b2f2976 | 64 | - [Developing the Library’s Functionality with Test Driven Development](ch12-04-testing-the-librarys-functionality.md) |
cc61c64b | 65 | - [Working with Environment Variables](ch12-05-working-with-environment-variables.md) |
3b2f2976 | 66 | - [Writing Error Messages to Standard Error Instead of Standard Output](ch12-06-writing-to-stderr-instead-of-stdout.md) |
cc61c64b XL |
67 | |
68 | ## Thinking in Rust | |
69 | ||
70 | - [Functional Language Features in Rust](ch13-00-functional-features.md) | |
71 | - [Closures](ch13-01-closures.md) | |
72 | - [Iterators](ch13-02-iterators.md) | |
73 | - [Improving our I/O Project](ch13-03-improving-our-io-project.md) | |
74 | - [Performance](ch13-04-performance.md) | |
75 | ||
76 | - [More about Cargo and Crates.io](ch14-00-more-about-cargo.md) | |
3b2f2976 | 77 | - [Customizing Builds with Release Profiles](ch14-01-release-profiles.md) |
cc61c64b XL |
78 | - [Publishing a Crate to Crates.io](ch14-02-publishing-to-crates-io.md) |
79 | - [Cargo Workspaces](ch14-03-cargo-workspaces.md) | |
80 | - [Installing Binaries from Crates.io with `cargo install`](ch14-04-installing-binaries.md) | |
81 | - [Extending Cargo with Custom Commands](ch14-05-extending-cargo.md) | |
82 | ||
83 | - [Smart Pointers](ch15-00-smart-pointers.md) | |
84 | - [`Box<T>` Points to Data on the Heap and Has a Known Size](ch15-01-box.md) | |
85 | - [The `Deref` Trait Allows Access to the Data Through a Reference](ch15-02-deref.md) | |
86 | - [The `Drop` Trait Runs Code on Cleanup](ch15-03-drop.md) | |
87 | - [`Rc<T>`, the Reference Counted Smart Pointer](ch15-04-rc.md) | |
88 | - [`RefCell<T>` and the Interior Mutability Pattern](ch15-05-interior-mutability.md) | |
89 | - [Creating Reference Cycles and Leaking Memory is Safe](ch15-06-reference-cycles.md) | |
90 | ||
91 | - [Fearless Concurrency](ch16-00-concurrency.md) | |
92 | - [Threads](ch16-01-threads.md) | |
93 | - [Message Passing](ch16-02-message-passing.md) | |
94 | - [Shared State](ch16-03-shared-state.md) | |
95 | - [Extensible Concurrency: `Sync` and `Send`](ch16-04-extensible-concurrency-sync-and-send.md) | |
96 | ||
97 | - [Is Rust an Object-Oriented Programming Language?](ch17-00-oop.md) | |
98 | - [What Does Object-Oriented Mean?](ch17-01-what-is-oo.md) | |
99 | - [Trait Objects for Using Values of Different Types](ch17-02-trait-objects.md) | |
100 | - [Object-Oriented Design Pattern Implementations](ch17-03-oo-design-patterns.md) | |
101 | ||
102 | ## Advanced Topics | |
103 | ||
104 | - [Patterns Match the Structure of Values](ch18-00-patterns.md) | |
105 | - [All the Places Patterns May be Used](ch18-01-all-the-places-for-patterns.md) | |
106 | - [Refutability: Whether a Pattern Might Fail to Match](ch18-02-refutability.md) | |
107 | - [All the Pattern Syntax](ch18-03-pattern-syntax.md) | |
108 | ||
109 | - [Advanced Features](ch19-00-advanced-features.md) | |
110 | - [Unsafe Rust](ch19-01-unsafe-rust.md) | |
111 | - [Advanced Lifetimes](ch19-02-advanced-lifetimes.md) | |
112 | - [Advanced Traits](ch19-03-advanced-traits.md) | |
113 | - [Advanced Types](ch19-04-advanced-types.md) | |
114 | - [Advanced Functions & Closures](ch19-05-advanced-functions-and-closures.md) | |
115 | ||
7cac9316 XL |
116 | - [Final Project: Building a Multithreaded Web Server](ch20-00-final-project-a-web-server.md) |
117 | - [A Single Threaded Web Server](ch20-01-single-threaded.md) | |
118 | - [How Slow Requests Affect Throughput](ch20-02-slow-requests.md) | |
119 | - [Designing the Thread Pool Interface](ch20-03-designing-the-interface.md) | |
120 | - [Creating the Thread Pool and Storing Threads](ch20-04-storing-threads.md) | |
121 | - [Sending Requests to Threads Via Channels](ch20-05-sending-requests-via-channels.md) | |
122 | - [Graceful Shutdown and Cleanup](ch20-06-graceful-shutdown-and-cleanup.md) | |
cc61c64b XL |
123 | |
124 | - [Appendix](appendix-00.md) | |
125 | - [A - Keywords](appendix-01-keywords.md) | |
126 | - [B - Operators](appendix-02-operators.md) | |
127 | - [C - Derivable Traits]() | |
abe05a73 XL |
128 | - [D - Macros]() |
129 | - [E - Translations]() | |
130 | - [F - Newest Features](appendix-07-newest-features.md) |