diff options
Diffstat (limited to 'src/doc/book/second-edition')
127 files changed, 2268 insertions, 0 deletions
diff --git a/src/doc/book/second-edition/book.toml b/src/doc/book/second-edition/book.toml new file mode 100644 index 000000000..9789a435c --- /dev/null +++ b/src/doc/book/second-edition/book.toml @@ -0,0 +1,3 @@ +[book] +title = "The Rust Programming Language" +author = "Steve Klabnik and Carol Nichols, with Contributions from the Rust Community" diff --git a/src/doc/book/second-edition/dot/trpl04-01.dot b/src/doc/book/second-edition/dot/trpl04-01.dot new file mode 100644 index 000000000..331d59133 --- /dev/null +++ b/src/doc/book/second-edition/dot/trpl04-01.dot @@ -0,0 +1,26 @@ +digraph { + rankdir=LR; + overlap=false; + dpi=300.0; + node [shape="plaintext"]; + + table0[label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> + <TR><TD COLSPAN="2" SIDES="B">s1</TD></TR> + <TR><TD>name</TD><TD>value</TD></TR> + <TR><TD>ptr</TD><TD PORT="pointer"></TD></TR> + <TR><TD>len</TD><TD>5</TD></TR> + <TR><TD>capacity</TD><TD>5</TD></TR> + </TABLE>>]; + table1[label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> + <TR><TD>index</TD><TD>value</TD></TR> + <TR><TD PORT="pointee">0</TD><TD>h</TD></TR> + <TR><TD>1</TD><TD>e</TD></TR> + <TR><TD>2</TD><TD>l</TD></TR> + <TR><TD>3</TD><TD>l</TD></TR> + <TR><TD>4</TD><TD>o</TD></TR> + </TABLE>>]; + + edge[tailclip="false"]; + table0:pointer:c -> table1:pointee; +} + diff --git a/src/doc/book/second-edition/dot/trpl04-02.dot b/src/doc/book/second-edition/dot/trpl04-02.dot new file mode 100644 index 000000000..e46d2ed4a --- /dev/null +++ b/src/doc/book/second-edition/dot/trpl04-02.dot @@ -0,0 +1,35 @@ +digraph { + rankdir=LR; + overlap=false; + dpi=300.0; + node [shape="plaintext"]; + + table0[label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> + <TR><TD COLSPAN="2" SIDES="B">s1</TD></TR> + <TR><TD>name</TD><TD>value</TD></TR> + <TR><TD>ptr</TD><TD PORT="pointer"></TD></TR> + <TR><TD>len</TD><TD>5</TD></TR> + <TR><TD>capacity</TD><TD>5</TD></TR> + </TABLE>>]; + table3[label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> + <TR><TD COLSPAN="2" SIDES="B">s2</TD></TR> + <TR><TD>name</TD><TD>value</TD></TR> + <TR><TD>ptr</TD><TD PORT="pointer"></TD></TR> + <TR><TD>len</TD><TD>5</TD></TR> + <TR><TD>capacity</TD><TD>5</TD></TR> + </TABLE>>]; + + table1[label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> + <TR><TD>index</TD><TD>value</TD></TR> + <TR><TD PORT="pointee">0</TD><TD>h</TD></TR> + <TR><TD>1</TD><TD>e</TD></TR> + <TR><TD>2</TD><TD>l</TD></TR> + <TR><TD>3</TD><TD>l</TD></TR> + <TR><TD>4</TD><TD>o</TD></TR> + </TABLE>>]; + + edge[tailclip="false"]; + table0:pointer:c -> table1:pointee; + table3:pointer:c -> table1:pointee; +} + diff --git a/src/doc/book/second-edition/dot/trpl04-03.dot b/src/doc/book/second-edition/dot/trpl04-03.dot new file mode 100644 index 000000000..16c0b2860 --- /dev/null +++ b/src/doc/book/second-edition/dot/trpl04-03.dot @@ -0,0 +1,44 @@ +digraph { + rankdir=LR; + overlap=false; + dpi=300.0; + node [shape="plaintext"]; + + table0[label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> + <TR><TD COLSPAN="2" SIDES="B">s2</TD></TR> + <TR><TD>name</TD><TD>value</TD></TR> + <TR><TD>ptr</TD><TD PORT="pointer"></TD></TR> + <TR><TD>len</TD><TD>5</TD></TR> + <TR><TD>capacity</TD><TD>5</TD></TR> + </TABLE>>]; + table1[label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> + <TR><TD>index</TD><TD>value</TD></TR> + <TR><TD PORT="pointee">0</TD><TD>h</TD></TR> + <TR><TD>1</TD><TD>e</TD></TR> + <TR><TD>2</TD><TD>l</TD></TR> + <TR><TD>3</TD><TD>l</TD></TR> + <TR><TD>4</TD><TD>o</TD></TR> + </TABLE>>]; + + table3[label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> + <TR><TD COLSPAN="2" SIDES="B">s1</TD></TR> + <TR><TD>name</TD><TD>value</TD></TR> + <TR><TD>ptr</TD><TD PORT="pointer"></TD></TR> + <TR><TD>len</TD><TD>5</TD></TR> + <TR><TD>capacity</TD><TD>5</TD></TR> + </TABLE>>]; + table4[label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> + <TR><TD>index</TD><TD>value</TD></TR> + <TR><TD PORT="pointee">0</TD><TD>h</TD></TR> + <TR><TD>1</TD><TD>e</TD></TR> + <TR><TD>2</TD><TD>l</TD></TR> + <TR><TD>3</TD><TD>l</TD></TR> + <TR><TD>4</TD><TD>o</TD></TR> + </TABLE>>]; + + + edge[tailclip="false"]; + table0:pointer:c -> table1:pointee; + table3:pointer:c -> table4:pointee; +} + diff --git a/src/doc/book/second-edition/dot/trpl04-04.dot b/src/doc/book/second-edition/dot/trpl04-04.dot new file mode 100644 index 000000000..1c95c231c --- /dev/null +++ b/src/doc/book/second-edition/dot/trpl04-04.dot @@ -0,0 +1,35 @@ +digraph { + rankdir=LR; + overlap=false; + dpi=300.0; + node [shape="plaintext"]; + + table0[label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" BGCOLOR="gray"> + <TR><TD COLSPAN="2" SIDES="B">s1</TD></TR> + <TR><TD>name</TD><TD>value</TD></TR> + <TR><TD>ptr</TD><TD PORT="pointer"></TD></TR> + <TR><TD>len</TD><TD>5</TD></TR> + <TR><TD>capacity</TD><TD>5</TD></TR> + </TABLE>>]; + table3[label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> + <TR><TD COLSPAN="2" SIDES="B">s2</TD></TR> + <TR><TD>name</TD><TD>value</TD></TR> + <TR><TD>ptr</TD><TD PORT="pointer"></TD></TR> + <TR><TD>len</TD><TD>5</TD></TR> + <TR><TD>capacity</TD><TD>5</TD></TR> + </TABLE>>]; + + table1[label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> + <TR><TD>index</TD><TD>value</TD></TR> + <TR><TD PORT="pointee">0</TD><TD>h</TD></TR> + <TR><TD>1</TD><TD>e</TD></TR> + <TR><TD>2</TD><TD>l</TD></TR> + <TR><TD>3</TD><TD>l</TD></TR> + <TR><TD>4</TD><TD>o</TD></TR> + </TABLE>>]; + + edge[tailclip="false"]; + table0:pointer:c -> table1:pointee; + table3:pointer:c -> table1:pointee; +} + diff --git a/src/doc/book/second-edition/dot/trpl04-05.dot b/src/doc/book/second-edition/dot/trpl04-05.dot new file mode 100644 index 000000000..ca1f7e06e --- /dev/null +++ b/src/doc/book/second-edition/dot/trpl04-05.dot @@ -0,0 +1,32 @@ +digraph { + rankdir=LR; + overlap=false; + dpi=300.0; + node [shape="plaintext"]; + + table0[label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> + <TR><TD COLSPAN="2" SIDES="B">s</TD></TR> + <TR><TD>name</TD><TD>value</TD></TR> + <TR><TD>ptr</TD><TD PORT="borrower"></TD></TR> + </TABLE>>]; + table1[label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> + <TR><TD COLSPAN="2" SIDES="B">s1</TD></TR> + <TR><TD>name</TD><TD>value</TD></TR> + <TR><TD PORT="borrowee">ptr</TD><TD PORT="pointer"></TD></TR> + <TR><TD>len</TD><TD>5</TD></TR> + <TR><TD>capacity</TD><TD>5</TD></TR> + </TABLE>>]; + table2[label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> + <TR><TD>index</TD><TD>value</TD></TR> + <TR><TD PORT="pointee">0</TD><TD>h</TD></TR> + <TR><TD>1</TD><TD>e</TD></TR> + <TR><TD>2</TD><TD>l</TD></TR> + <TR><TD>3</TD><TD>l</TD></TR> + <TR><TD>4</TD><TD>o</TD></TR> + </TABLE>>]; + + edge[tailclip="false"]; + table1:pointer:c -> table2:pointee; + table0:borrower:c -> table1:borrowee; +} + diff --git a/src/doc/book/second-edition/dot/trpl04-06.dot b/src/doc/book/second-edition/dot/trpl04-06.dot new file mode 100644 index 000000000..a23f179a7 --- /dev/null +++ b/src/doc/book/second-edition/dot/trpl04-06.dot @@ -0,0 +1,41 @@ +digraph { + rankdir=LR; + overlap=false; + dpi=300.0; + node [shape="plaintext"]; + + table0[label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> + <TR><TD COLSPAN="2" SIDES="B">world</TD></TR> + <TR><TD>name</TD><TD>value</TD></TR> + <TR><TD>ptr</TD><TD PORT="pointer2"></TD></TR> + <TR><TD>len</TD><TD>5</TD></TR> + </TABLE>>]; + + table3[label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> + <TR><TD COLSPAN="2" SIDES="B">s</TD></TR> + <TR><TD>name</TD><TD>value</TD></TR> + <TR><TD>ptr</TD><TD PORT="pointer"></TD></TR> + <TR><TD>len</TD><TD>11</TD></TR> + <TR><TD>capacity</TD><TD>11</TD></TR> + </TABLE>>]; + table4[label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> + <TR><TD>index</TD><TD>value</TD></TR> + <TR><TD PORT="pointee">0</TD><TD>h</TD></TR> + <TR><TD>1</TD><TD>e</TD></TR> + <TR><TD>2</TD><TD>l</TD></TR> + <TR><TD>3</TD><TD>l</TD></TR> + <TR><TD>4</TD><TD>o</TD></TR> + <TR><TD>5</TD><TD> </TD></TR> + <TR><TD PORT="pointee2">6</TD><TD>w</TD></TR> + <TR><TD>7</TD><TD>o</TD></TR> + <TR><TD>8</TD><TD>r</TD></TR> + <TR><TD>9</TD><TD>l</TD></TR> + <TR><TD>10</TD><TD>d</TD></TR> + </TABLE>>]; + + + edge[tailclip="false"]; + table0:pointer2:c -> table4:pointee2; + table3:pointer:c -> table4:pointee; +} + diff --git a/src/doc/book/second-edition/dot/trpl15-01.dot b/src/doc/book/second-edition/dot/trpl15-01.dot new file mode 100644 index 000000000..e8b95f9a3 --- /dev/null +++ b/src/doc/book/second-edition/dot/trpl15-01.dot @@ -0,0 +1,24 @@ +digraph { + rankdir=LR; + overlap=false; + dpi=300.0; + node [shape="plaintext"]; + + table0[label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> + <TR><TD COLSPAN="2" SIDES="B">Cons</TD></TR> + <TR><TD>i32</TD><TD><TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> + <TR><TD COLSPAN="2" SIDES="B">Cons</TD></TR> + <TR><TD>i32</TD><TD><TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> + <TR><TD COLSPAN="2" SIDES="B">Cons</TD></TR> + <TR><TD>i32</TD><TD><TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> + <TR><TD COLSPAN="2" SIDES="B">Cons</TD></TR> + <TR><TD>i32</TD><TD><TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> + <TR><TD COLSPAN="2" SIDES="B">Cons</TD></TR> + <TR><TD>i32</TD><TD>∞</TD></TR> + </TABLE></TD></TR> + </TABLE></TD></TR> + </TABLE></TD></TR> + </TABLE></TD></TR> + </TABLE>>]; +} + diff --git a/src/doc/book/second-edition/dot/trpl15-02.dot b/src/doc/book/second-edition/dot/trpl15-02.dot new file mode 100644 index 000000000..f7dfd22c9 --- /dev/null +++ b/src/doc/book/second-edition/dot/trpl15-02.dot @@ -0,0 +1,18 @@ +digraph { + rankdir=LR; + overlap=false; + dpi=300.0; + node [shape="plaintext"]; + + table0[label=< + <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> + <TR><TD COLSPAN="2" SIDES="B">Cons</TD></TR> + <TR><TD>i32</TD><TD> + <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> + <TR><TD SIDES="B">Box</TD></TR> + <TR><TD>usize</TD></TR> + </TABLE> + </TD></TR> + </TABLE>>]; +} + diff --git a/src/doc/book/second-edition/dot/trpl15-03.dot b/src/doc/book/second-edition/dot/trpl15-03.dot new file mode 100644 index 000000000..16f026814 --- /dev/null +++ b/src/doc/book/second-edition/dot/trpl15-03.dot @@ -0,0 +1,51 @@ +digraph { + rankdir=LR; + overlap=false; + dpi=300.0; + node [shape="plaintext"]; + + table4[label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> + <TR><TD SIDES="B">b</TD><TD SIDES="B" PORT="ptr4"></TD></TR> + </TABLE>>]; + + table5[label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> + <TR><TD PORT="pte4">3</TD><TD PORT="ptr5"> </TD></TR> + </TABLE>>]; + + + table0[label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> + <TR><TD SIDES="B">a</TD><TD SIDES="B" PORT="ptr0"></TD></TR> + </TABLE>>]; + + table1[label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> + <TR><TD PORT="pte0">5</TD><TD PORT="ptr1"> </TD></TR> + </TABLE>>]; + + table2[label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> + <TR><TD PORT="pte1">10</TD><TD PORT="ptr2"> </TD></TR> + </TABLE>>]; + + table3[label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> + <TR><TD PORT="pte2">Nil</TD></TR> + </TABLE>>]; + + + table6[label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> + <TR><TD SIDES="B">c</TD><TD SIDES="B" PORT="ptr6"></TD></TR> + </TABLE>>]; + + table7[label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> + <TR><TD PORT="pte6">4</TD><TD PORT="ptr7"> </TD></TR> + </TABLE>>]; + + + edge[tailclip="false"]; + table0:ptr0:c -> table1:pte0; + table1:ptr1:c -> table2:pte1; + table2:ptr2:c -> table3:pte2; + table4:ptr4:c -> table5:pte4; + table5:ptr5:c -> table1:pte0; + table6:ptr6:c -> table7:pte6; + table7:ptr7:c -> table1:pte0; +} + diff --git a/src/doc/book/second-edition/src/SUMMARY.md b/src/doc/book/second-edition/src/SUMMARY.md new file mode 100644 index 000000000..37d703d8e --- /dev/null +++ b/src/doc/book/second-edition/src/SUMMARY.md @@ -0,0 +1,132 @@ +# The Rust Programming Language + +[Foreword](foreword.md) +[Introduction](ch00-00-introduction.md) + +## Getting started + +- [Getting Started](ch01-00-getting-started.md) + - [Installation](ch01-01-installation.md) + - [Hello, World!](ch01-02-hello-world.md) + - [Hello, Cargo!](ch01-03-hello-cargo.md) + +- [Programming a Guessing Game](ch02-00-guessing-game-tutorial.md) + +- [Common Programming Concepts](ch03-00-common-programming-concepts.md) + - [Variables and Mutability](ch03-01-variables-and-mutability.md) + - [Data Types](ch03-02-data-types.md) + - [How Functions Work](ch03-03-how-functions-work.md) + - [Comments](ch03-04-comments.md) + - [Control Flow](ch03-05-control-flow.md) + +- [Understanding Ownership](ch04-00-understanding-ownership.md) + - [What is Ownership?](ch04-01-what-is-ownership.md) + - [References & Borrowing](ch04-02-references-and-borrowing.md) + - [Slices](ch04-03-slices.md) + +- [Using Structs to Structure Related Data](ch05-00-structs.md) + - [Defining and Instantiating Structs](ch05-01-defining-structs.md) + - [An Example Program Using Structs](ch05-02-example-structs.md) + - [Method Syntax](ch05-03-method-syntax.md) + +- [Enums and Pattern Matching](ch06-00-enums.md) + - [Defining an Enum](ch06-01-defining-an-enum.md) + - [The `match` Control Flow Operator](ch06-02-match.md) + - [Concise Control Flow with `if let`](ch06-03-if-let.md) + +## Basic Rust Literacy + +- [Modules](ch07-00-modules.md) + - [`mod` and the Filesystem](ch07-01-mod-and-the-filesystem.md) + - [Controlling Visibility with `pub`](ch07-02-controlling-visibility-with-pub.md) + - [Referring to Names in Different Modules](ch07-03-importing-names-with-use.md) + +- [Common Collections](ch08-00-common-collections.md) + - [Vectors](ch08-01-vectors.md) + - [Strings](ch08-02-strings.md) + - [Hash Maps](ch08-03-hash-maps.md) + +- [Error Handling](ch09-00-error-handling.md) + - [Unrecoverable Errors with `panic!`](ch09-01-unrecoverable-errors-with-panic.md) + - [Recoverable Errors with `Result`](ch09-02-recoverable-errors-with-result.md) + - [To `panic!` or Not to `panic!`](ch09-03-to-panic-or-not-to-panic.md) + +- [Generic Types, Traits, and Lifetimes](ch10-00-generics.md) + - [Generic Data Types](ch10-01-syntax.md) + - [Traits: Defining Shared Behavior](ch10-02-traits.md) + - [Validating References with Lifetimes](ch10-03-lifetime-syntax.md) + +- [Testing](ch11-00-testing.md) + - [Writing tests](ch11-01-writing-tests.md) + - [Running tests](ch11-02-running-tests.md) + - [Test Organization](ch11-03-test-organization.md) + +- [An I/O Project: Building a Command Line Program](ch12-00-an-io-project.md) + - [Accepting Command Line Arguments](ch12-01-accepting-command-line-arguments.md) + - [Reading a File](ch12-02-reading-a-file.md) + - [Refactoring to Improve Modularity and Error Handling](ch12-03-improving-error-handling-and-modularity.md) + - [Developing the Library’s Functionality with Test Driven Development](ch12-04-testing-the-librarys-functionality.md) + - [Working with Environment Variables](ch12-05-working-with-environment-variables.md) + - [Writing Error Messages to Standard Error Instead of Standard Output](ch12-06-writing-to-stderr-instead-of-stdout.md) + +## Thinking in Rust + +- [Functional Language Features: Iterators and Closures](ch13-00-functional-features.md) + - [Closures: Anonymous Functions that Can Capture Their Environment](ch13-01-closures.md) + - [Processing a Series of Items with Iterators](ch13-02-iterators.md) + - [Improving Our I/O Project](ch13-03-improving-our-io-project.md) + - [Comparing Performance: Loops vs. Iterators](ch13-04-performance.md) + +- [More about Cargo and Crates.io](ch14-00-more-about-cargo.md) + - [Customizing Builds with Release Profiles](ch14-01-release-profiles.md) + - [Publishing a Crate to Crates.io](ch14-02-publishing-to-crates-io.md) + - [Cargo Workspaces](ch14-03-cargo-workspaces.md) + - [Installing Binaries from Crates.io with `cargo install`](ch14-04-installing-binaries.md) + - [Extending Cargo with Custom Commands](ch14-05-extending-cargo.md) + +- [Smart Pointers](ch15-00-smart-pointers.md) + - [`Box<T>` Points to Data on the Heap and Has a Known Size](ch15-01-box.md) + - [The `Deref` Trait Allows Access to the Data Through a Reference](ch15-02-deref.md) + - [The `Drop` Trait Runs Code on Cleanup](ch15-03-drop.md) + - [`Rc<T>`, the Reference Counted Smart Pointer](ch15-04-rc.md) + - [`RefCell<T>` and the Interior Mutability Pattern](ch15-05-interior-mutability.md) + - [Creating Reference Cycles and Leaking Memory is Safe](ch15-06-reference-cycles.md) + +- [Fearless Concurrency](ch16-00-concurrency.md) + - [Threads](ch16-01-threads.md) + - [Message Passing](ch16-02-message-passing.md) + - [Shared State](ch16-03-shared-state.md) + - [Extensible Concurrency: `Sync` and `Send`](ch16-04-extensible-concurrency-sync-and-send.md) + +- [Object Oriented Programming Features of Rust](ch17-00-oop.md) + - [Characteristics of Object-Oriented Languages](ch17-01-what-is-oo.md) + - [Using Trait Objects that Allow for Values of Different Types](ch17-02-trait-objects.md) + - [Implementing an Object-Oriented Design Pattern](ch17-03-oo-design-patterns.md) + +## Advanced Topics + +- [Patterns Match the Structure of Values](ch18-00-patterns.md) + - [All the Places Patterns May be Used](ch18-01-all-the-places-for-patterns.md) + - [Refutability: Whether a Pattern Might Fail to Match](ch18-02-refutability.md) + - [All the Pattern Syntax](ch18-03-pattern-syntax.md) + +- [Advanced Features](ch19-00-advanced-features.md) + - [Unsafe Rust](ch19-01-unsafe-rust.md) + - [Advanced Lifetimes](ch19-02-advanced-lifetimes.md) + - [Advanced Traits](ch19-03-advanced-traits.md) + - [Advanced Types](ch19-04-advanced-types.md) + - [Advanced Functions & Closures](ch19-05-advanced-functions-and-closures.md) + +- [Final Project: Building a Multithreaded Web Server](ch20-00-final-project-a-web-server.md) + - [A Single Threaded Web Server](ch20-01-single-threaded.md) + - [Turning our Single Threaded Server into a Multithreaded Server](ch20-02-multithreaded.md) + - [Graceful Shutdown and Cleanup](ch20-03-graceful-shutdown-and-cleanup.md) + +- [Appendix](appendix-00.md) + - [A - Keywords](appendix-01-keywords.md) + - [B - Operators and Symbols](appendix-02-operators.md) + - [C - Derivable Traits](appendix-03-derivable-traits.md) + - [D - Macros](appendix-04-macros.md) + - [E - Translations](appendix-05-translation.md) + - [F - Newest Features](appendix-06-newest-features.md) + - [G - How Rust is Made and “Nightly Rust”](appendix-07-nightly-rust.md) diff --git a/src/doc/book/second-edition/src/appendix-00.md b/src/doc/book/second-edition/src/appendix-00.md new file mode 100644 index 000000000..a19a914da --- /dev/null +++ b/src/doc/book/second-edition/src/appendix-00.md @@ -0,0 +1,10 @@ +# Appendix + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../appendix-00.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/appendix-00.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/appendix-01-keywords.md b/src/doc/book/second-edition/src/appendix-01-keywords.md new file mode 100644 index 000000000..a2dd67025 --- /dev/null +++ b/src/doc/book/second-edition/src/appendix-01-keywords.md @@ -0,0 +1,10 @@ +## Appendix A: Keywords + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../appendix-01-keywords.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/appendix-01-keywords.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/appendix-02-operators.md b/src/doc/book/second-edition/src/appendix-02-operators.md new file mode 100644 index 000000000..decfc7305 --- /dev/null +++ b/src/doc/book/second-edition/src/appendix-02-operators.md @@ -0,0 +1,10 @@ +## Appendix B: Operators and Symbols + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../appendix-02-operators.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/appendix-02-operators.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/appendix-03-derivable-traits.md b/src/doc/book/second-edition/src/appendix-03-derivable-traits.md new file mode 100644 index 000000000..f09dceeed --- /dev/null +++ b/src/doc/book/second-edition/src/appendix-03-derivable-traits.md @@ -0,0 +1,10 @@ +## Appendix C: Derivable Traits + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../appendix-03-derivable-traits.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/appendix-03-derivable-traits.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/appendix-04-macros.md b/src/doc/book/second-edition/src/appendix-04-macros.md new file mode 100644 index 000000000..2798b5d50 --- /dev/null +++ b/src/doc/book/second-edition/src/appendix-04-macros.md @@ -0,0 +1,10 @@ +## Appendix D: Macros + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../ch19-06-macros.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/appendix-04-macros.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/appendix-05-translation.md b/src/doc/book/second-edition/src/appendix-05-translation.md new file mode 100644 index 000000000..69562bc96 --- /dev/null +++ b/src/doc/book/second-edition/src/appendix-05-translation.md @@ -0,0 +1,10 @@ +## Appendix E: Translations of the Book + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../appendix-06-translation.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/appendix-05-translation.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/appendix-06-newest-features.md b/src/doc/book/second-edition/src/appendix-06-newest-features.md new file mode 100644 index 000000000..c1b2f9152 --- /dev/null +++ b/src/doc/book/second-edition/src/appendix-06-newest-features.md @@ -0,0 +1,10 @@ +# Appendix F - Newest Features + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../index.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/appendix-06-newest-features.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/appendix-07-nightly-rust.md b/src/doc/book/second-edition/src/appendix-07-nightly-rust.md new file mode 100644 index 000000000..41f3b3ec7 --- /dev/null +++ b/src/doc/book/second-edition/src/appendix-07-nightly-rust.md @@ -0,0 +1,10 @@ +# Appendix G - How Rust is Made and “Nightly Rust” + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../appendix-07-nightly-rust.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/appendix-07-nightly-rust.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/ch00-00-introduction.md b/src/doc/book/second-edition/src/ch00-00-introduction.md new file mode 100644 index 000000000..7de0c638a --- /dev/null +++ b/src/doc/book/second-edition/src/ch00-00-introduction.md @@ -0,0 +1,10 @@ +# Introduction + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../ch00-00-introduction.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/ch00-00-introduction.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/ch01-00-getting-started.md b/src/doc/book/second-edition/src/ch01-00-getting-started.md new file mode 100644 index 000000000..6aa4e1e5b --- /dev/null +++ b/src/doc/book/second-edition/src/ch01-00-getting-started.md @@ -0,0 +1,10 @@ +# Getting Started + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../ch01-00-getting-started.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/ch10-00-getting-started.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/ch01-01-installation.md b/src/doc/book/second-edition/src/ch01-01-installation.md new file mode 100644 index 000000000..478be2f7c --- /dev/null +++ b/src/doc/book/second-edition/src/ch01-01-installation.md @@ -0,0 +1,10 @@ +## Installation + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../ch01-01-installation.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/ch01-01-installation.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/ch01-02-hello-world.md b/src/doc/book/second-edition/src/ch01-02-hello-world.md new file mode 100644 index 000000000..6d690501c --- /dev/null +++ b/src/doc/book/second-edition/src/ch01-02-hello-world.md @@ -0,0 +1,10 @@ +## Hello, World! + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../ch01-02-hello-world.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/ch01-02-hello-world.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/ch01-03-hello-cargo.md b/src/doc/book/second-edition/src/ch01-03-hello-cargo.md new file mode 100644 index 000000000..72227bc8e --- /dev/null +++ b/src/doc/book/second-edition/src/ch01-03-hello-cargo.md @@ -0,0 +1,10 @@ +## Hello, Cargo! + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../ch01-03-hello-cargo.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/ch01-03-hello-cargo.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/ch02-00-guessing-game-tutorial.md b/src/doc/book/second-edition/src/ch02-00-guessing-game-tutorial.md new file mode 100644 index 000000000..c670083bc --- /dev/null +++ b/src/doc/book/second-edition/src/ch02-00-guessing-game-tutorial.md @@ -0,0 +1,10 @@ +# Programming a Guessing Game + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../ch02-00-guessing-game-tutorial.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/ch02-00-guessing-game-tutorial.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/ch03-00-common-programming-concepts.md b/src/doc/book/second-edition/src/ch03-00-common-programming-concepts.md new file mode 100644 index 000000000..b2cb97064 --- /dev/null +++ b/src/doc/book/second-edition/src/ch03-00-common-programming-concepts.md @@ -0,0 +1,10 @@ +# Common Programming Concepts + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../ch03-00-common-programming-concepts.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/ch03-00-common-programming-concepts.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/ch03-01-variables-and-mutability.md b/src/doc/book/second-edition/src/ch03-01-variables-and-mutability.md new file mode 100644 index 000000000..70a85b269 --- /dev/null +++ b/src/doc/book/second-edition/src/ch03-01-variables-and-mutability.md @@ -0,0 +1,10 @@ +## Variables and Mutability + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../ch03-01-variables-and-mutability.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/ch03-01-variables-and-mutability.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/ch03-02-data-types.md b/src/doc/book/second-edition/src/ch03-02-data-types.md new file mode 100644 index 000000000..43b14f4e9 --- /dev/null +++ b/src/doc/book/second-edition/src/ch03-02-data-types.md @@ -0,0 +1,10 @@ +## Data Types + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../ch03-02-data-types.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/ch03-02-data-types.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/ch03-03-how-functions-work.md b/src/doc/book/second-edition/src/ch03-03-how-functions-work.md new file mode 100644 index 000000000..e37d09eba --- /dev/null +++ b/src/doc/book/second-edition/src/ch03-03-how-functions-work.md @@ -0,0 +1,10 @@ +## Functions + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../ch03-03-how-functions-work.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/ch03-03-how-functions-work.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/ch03-04-comments.md b/src/doc/book/second-edition/src/ch03-04-comments.md new file mode 100644 index 000000000..1775b7d06 --- /dev/null +++ b/src/doc/book/second-edition/src/ch03-04-comments.md @@ -0,0 +1,10 @@ +## Comments + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../ch03-04-comments.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/ch03-04-comments.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/ch03-05-control-flow.md b/src/doc/book/second-edition/src/ch03-05-control-flow.md new file mode 100644 index 000000000..977c19aa0 --- /dev/null +++ b/src/doc/book/second-edition/src/ch03-05-control-flow.md @@ -0,0 +1,10 @@ +## Control Flow + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../ch03-05-control-flow.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/ch03-05-control-flow.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/ch04-00-understanding-ownership.md b/src/doc/book/second-edition/src/ch04-00-understanding-ownership.md new file mode 100644 index 000000000..3764c3c0c --- /dev/null +++ b/src/doc/book/second-edition/src/ch04-00-understanding-ownership.md @@ -0,0 +1,10 @@ +# Understanding Ownership + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../ch04-00-understanding-ownership.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/ch04-00-understanding-ownership.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/ch04-01-what-is-ownership.md b/src/doc/book/second-edition/src/ch04-01-what-is-ownership.md new file mode 100644 index 000000000..8f857a394 --- /dev/null +++ b/src/doc/book/second-edition/src/ch04-01-what-is-ownership.md @@ -0,0 +1,10 @@ +## What Is Ownership? + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../ch04-01-what-is-ownership.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/ch04-01-what-is-ownership.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/ch04-02-references-and-borrowing.md b/src/doc/book/second-edition/src/ch04-02-references-and-borrowing.md new file mode 100644 index 000000000..f9ccceaa1 --- /dev/null +++ b/src/doc/book/second-edition/src/ch04-02-references-and-borrowing.md @@ -0,0 +1,10 @@ +## References and Borrowing + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../ch04-02-references-and-borrowing.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/ch04-02-references-and-borrowing.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/ch04-03-slices.md b/src/doc/book/second-edition/src/ch04-03-slices.md new file mode 100644 index 000000000..4b4c3967f --- /dev/null +++ b/src/doc/book/second-edition/src/ch04-03-slices.md @@ -0,0 +1,10 @@ +## The Slice Type + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../ch04-03-slices.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/ch04-03-slices.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/ch05-00-structs.md b/src/doc/book/second-edition/src/ch05-00-structs.md new file mode 100644 index 000000000..e7b6e512e --- /dev/null +++ b/src/doc/book/second-edition/src/ch05-00-structs.md @@ -0,0 +1,10 @@ +# Using Structs to Structure Related Data + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../ch05-00-structs.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/ch05-00-structs.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/ch05-01-defining-structs.md b/src/doc/book/second-edition/src/ch05-01-defining-structs.md new file mode 100644 index 000000000..39bf82831 --- /dev/null +++ b/src/doc/book/second-edition/src/ch05-01-defining-structs.md @@ -0,0 +1,10 @@ +## Defining and Instantiating Structs + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../ch05-01-defining-structs.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/ch05-01-defining-structs.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/ch05-02-example-structs.md b/src/doc/book/second-edition/src/ch05-02-example-structs.md new file mode 100644 index 000000000..b32a1e301 --- /dev/null +++ b/src/doc/book/second-edition/src/ch05-02-example-structs.md @@ -0,0 +1,10 @@ +## An Example Program Using Structs + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../ch05-02-example-structs.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/ch05-02-example-structs.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/ch05-03-method-syntax.md b/src/doc/book/second-edition/src/ch05-03-method-syntax.md new file mode 100644 index 000000000..d8338023a --- /dev/null +++ b/src/doc/book/second-edition/src/ch05-03-method-syntax.md @@ -0,0 +1,10 @@ +## Method Syntax + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../ch05-03-method-syntax.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/ch05-03-method-syntax.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/ch06-00-enums.md b/src/doc/book/second-edition/src/ch06-00-enums.md new file mode 100644 index 000000000..367060de3 --- /dev/null +++ b/src/doc/book/second-edition/src/ch06-00-enums.md @@ -0,0 +1,10 @@ +# Enums and Pattern Matching + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../ch06-00-enums.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/ch06-00-enums.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/ch06-01-defining-an-enum.md b/src/doc/book/second-edition/src/ch06-01-defining-an-enum.md new file mode 100644 index 000000000..1963c7bc2 --- /dev/null +++ b/src/doc/book/second-edition/src/ch06-01-defining-an-enum.md @@ -0,0 +1,10 @@ +## Defining an Enum + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../ch06-01-defining-an-enum.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/ch06-01-defining-an-enum.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/ch06-02-match.md b/src/doc/book/second-edition/src/ch06-02-match.md new file mode 100644 index 000000000..57c7a701b --- /dev/null +++ b/src/doc/book/second-edition/src/ch06-02-match.md @@ -0,0 +1,10 @@ +## The `match` Control Flow Operator + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../ch06-02-match.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/ch06-02-match.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/ch06-03-if-let.md b/src/doc/book/second-edition/src/ch06-03-if-let.md new file mode 100644 index 000000000..ba5998340 --- /dev/null +++ b/src/doc/book/second-edition/src/ch06-03-if-let.md @@ -0,0 +1,10 @@ +## Concise Control Flow with `if let` + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../ch06-03-if-let.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/ch06-03-if-let.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/ch07-00-modules.md b/src/doc/book/second-edition/src/ch07-00-modules.md new file mode 100644 index 000000000..43cd6bb20 --- /dev/null +++ b/src/doc/book/second-edition/src/ch07-00-modules.md @@ -0,0 +1,10 @@ +# Using Modules to Reuse and Organize Code + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../ch07-02-defining-modules-to-control-scope-and-privacy.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/ch07-00-modules.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/ch07-01-mod-and-the-filesystem.md b/src/doc/book/second-edition/src/ch07-01-mod-and-the-filesystem.md new file mode 100644 index 000000000..688900113 --- /dev/null +++ b/src/doc/book/second-edition/src/ch07-01-mod-and-the-filesystem.md @@ -0,0 +1,10 @@ +## `mod` and the Filesystem + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../ch07-02-defining-modules-to-control-scope-and-privacy.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/ch07-01-mod-and-the-filesystem.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/ch07-02-controlling-visibility-with-pub.md b/src/doc/book/second-edition/src/ch07-02-controlling-visibility-with-pub.md new file mode 100644 index 000000000..8eb9e5455 --- /dev/null +++ b/src/doc/book/second-edition/src/ch07-02-controlling-visibility-with-pub.md @@ -0,0 +1,10 @@ +## Controlling Visibility with `pub` + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../ch07-02-defining-modules-to-control-scope-and-privacy.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/ch07-02-controlling-visibility-with-pub.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/ch07-03-importing-names-with-use.md b/src/doc/book/second-edition/src/ch07-03-importing-names-with-use.md new file mode 100644 index 000000000..afcdc29d3 --- /dev/null +++ b/src/doc/book/second-edition/src/ch07-03-importing-names-with-use.md @@ -0,0 +1,10 @@ +## Referring to Names in Different Modules + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../ch07-04-bringing-paths-into-scope-with-the-use-keyword.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/ch07-03-importing-names-with-use.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/ch08-00-common-collections.md b/src/doc/book/second-edition/src/ch08-00-common-collections.md new file mode 100644 index 000000000..b1711089c --- /dev/null +++ b/src/doc/book/second-edition/src/ch08-00-common-collections.md @@ -0,0 +1,10 @@ +# Common Collections + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../ch08-00-common-collections.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/ch08-00-common-collections.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/ch08-01-vectors.md b/src/doc/book/second-edition/src/ch08-01-vectors.md new file mode 100644 index 000000000..37469503e --- /dev/null +++ b/src/doc/book/second-edition/src/ch08-01-vectors.md @@ -0,0 +1,10 @@ +## Storing Lists of Values with Vectors + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../ch08-01-vectors.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/ch08-01-vectors.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/ch08-02-strings.md b/src/doc/book/second-edition/src/ch08-02-strings.md new file mode 100644 index 000000000..f5ed14390 --- /dev/null +++ b/src/doc/book/second-edition/src/ch08-02-strings.md @@ -0,0 +1,10 @@ +## Storing UTF-8 Encoded Text with Strings + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../ch08-02-strings.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/ch08-02-strings.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/ch08-03-hash-maps.md b/src/doc/book/second-edition/src/ch08-03-hash-maps.md new file mode 100644 index 000000000..21d14bccc --- /dev/null +++ b/src/doc/book/second-edition/src/ch08-03-hash-maps.md @@ -0,0 +1,10 @@ +## Storing Keys with Associated Values in Hash Maps + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../ch08-03-hash-maps.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/ch08-03-hash-maps.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/ch09-00-error-handling.md b/src/doc/book/second-edition/src/ch09-00-error-handling.md new file mode 100644 index 000000000..3a5de11a2 --- /dev/null +++ b/src/doc/book/second-edition/src/ch09-00-error-handling.md @@ -0,0 +1,10 @@ +# Error Handling + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../ch09-00-error-handling.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/ch09-00-error-handling.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/ch09-01-unrecoverable-errors-with-panic.md b/src/doc/book/second-edition/src/ch09-01-unrecoverable-errors-with-panic.md new file mode 100644 index 000000000..2596c3677 --- /dev/null +++ b/src/doc/book/second-edition/src/ch09-01-unrecoverable-errors-with-panic.md @@ -0,0 +1,10 @@ +## Unrecoverable Errors with `panic!` + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../ch09-01-unrecoverable-errors-with-panic.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/ch09-01-unrecoverable-errors-with-panic.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/ch09-02-recoverable-errors-with-result.md b/src/doc/book/second-edition/src/ch09-02-recoverable-errors-with-result.md new file mode 100644 index 000000000..ac1bfe151 --- /dev/null +++ b/src/doc/book/second-edition/src/ch09-02-recoverable-errors-with-result.md @@ -0,0 +1,10 @@ +## Recoverable Errors with `Result` + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../ch09-02-recoverable-errors-with-result.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/ch09-02-recoverable-errors-with-result.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/ch09-03-to-panic-or-not-to-panic.md b/src/doc/book/second-edition/src/ch09-03-to-panic-or-not-to-panic.md new file mode 100644 index 000000000..f2037237f --- /dev/null +++ b/src/doc/book/second-edition/src/ch09-03-to-panic-or-not-to-panic.md @@ -0,0 +1,10 @@ +## To `panic!` or Not to `panic!` + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../ch09-03-to-panic-or-not-to-panic.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/ch09-03-to-panic-or-not-to-panic.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/ch10-00-generics.md b/src/doc/book/second-edition/src/ch10-00-generics.md new file mode 100644 index 000000000..e8dd4a07a --- /dev/null +++ b/src/doc/book/second-edition/src/ch10-00-generics.md @@ -0,0 +1,10 @@ +# Generic Types, Traits, and Lifetimes + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../ch10-00-generics.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/ch10-00-generics.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/ch10-01-syntax.md b/src/doc/book/second-edition/src/ch10-01-syntax.md new file mode 100644 index 000000000..fcfb3e69b --- /dev/null +++ b/src/doc/book/second-edition/src/ch10-01-syntax.md @@ -0,0 +1,10 @@ +## Generic Data Types + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../ch10-01-syntax.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/ch10-01-syntax.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/ch10-02-traits.md b/src/doc/book/second-edition/src/ch10-02-traits.md new file mode 100644 index 000000000..9d0d72bd8 --- /dev/null +++ b/src/doc/book/second-edition/src/ch10-02-traits.md @@ -0,0 +1,10 @@ +## Traits: Defining Shared Behavior + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../ch10-02-traits.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/ch10-02-traits.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/ch10-03-lifetime-syntax.md b/src/doc/book/second-edition/src/ch10-03-lifetime-syntax.md new file mode 100644 index 000000000..05d6e5dc3 --- /dev/null +++ b/src/doc/book/second-edition/src/ch10-03-lifetime-syntax.md @@ -0,0 +1,10 @@ +## Validating References with Lifetimes + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../ch10-03-lifetime-syntax.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/ch10-03-lifetime-syntax.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/ch11-00-testing.md b/src/doc/book/second-edition/src/ch11-00-testing.md new file mode 100644 index 000000000..76aa84e75 --- /dev/null +++ b/src/doc/book/second-edition/src/ch11-00-testing.md @@ -0,0 +1,10 @@ +# Writing Automated Tests + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../ch11-00-testing.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/ch11-00-testing.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/ch11-01-writing-tests.md b/src/doc/book/second-edition/src/ch11-01-writing-tests.md new file mode 100644 index 000000000..0b332ef5c --- /dev/null +++ b/src/doc/book/second-edition/src/ch11-01-writing-tests.md @@ -0,0 +1,10 @@ +## How to Write Tests + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../ch11-01-writing-tests.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/ch11-01-writing-tests.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/ch11-02-running-tests.md b/src/doc/book/second-edition/src/ch11-02-running-tests.md new file mode 100644 index 000000000..b1276b381 --- /dev/null +++ b/src/doc/book/second-edition/src/ch11-02-running-tests.md @@ -0,0 +1,10 @@ +## Controlling How Tests Are Run + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../ch11-02-running-tests.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/ch11-02-running-tests.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/ch11-03-test-organization.md b/src/doc/book/second-edition/src/ch11-03-test-organization.md new file mode 100644 index 000000000..4edb0c083 --- /dev/null +++ b/src/doc/book/second-edition/src/ch11-03-test-organization.md @@ -0,0 +1,10 @@ +## Test Organization + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../ch11-03-test-organization.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/ch11-03-test-organization.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/ch12-00-an-io-project.md b/src/doc/book/second-edition/src/ch12-00-an-io-project.md new file mode 100644 index 000000000..a631a15cc --- /dev/null +++ b/src/doc/book/second-edition/src/ch12-00-an-io-project.md @@ -0,0 +1,10 @@ +# An I/O Project: Building a Command Line Program + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../ch12-00-an-io-project.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/ch12-00-an-io-project.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/ch12-01-accepting-command-line-arguments.md b/src/doc/book/second-edition/src/ch12-01-accepting-command-line-arguments.md new file mode 100644 index 000000000..a904cad31 --- /dev/null +++ b/src/doc/book/second-edition/src/ch12-01-accepting-command-line-arguments.md @@ -0,0 +1,10 @@ +## Accepting Command Line Arguments + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../ch12-01-accepting-command-line-arguments.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/ch12-01-accepting-command-line-arguments.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/ch12-02-reading-a-file.md b/src/doc/book/second-edition/src/ch12-02-reading-a-file.md new file mode 100644 index 000000000..d3b74d030 --- /dev/null +++ b/src/doc/book/second-edition/src/ch12-02-reading-a-file.md @@ -0,0 +1,10 @@ +## Reading a File + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../ch12-02-reading-a-file.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/ch12-02-reading-a-file.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/ch12-03-improving-error-handling-and-modularity.md b/src/doc/book/second-edition/src/ch12-03-improving-error-handling-and-modularity.md new file mode 100644 index 000000000..cd6fd68fc --- /dev/null +++ b/src/doc/book/second-edition/src/ch12-03-improving-error-handling-and-modularity.md @@ -0,0 +1,10 @@ +## Refactoring to Improve Modularity and Error Handling + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../ch12-03-improving-error-handling-and-modularity.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/ch12-03-improving-error-handling-and-modularity.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/ch12-04-testing-the-librarys-functionality.md b/src/doc/book/second-edition/src/ch12-04-testing-the-librarys-functionality.md new file mode 100644 index 000000000..c9bfa60c9 --- /dev/null +++ b/src/doc/book/second-edition/src/ch12-04-testing-the-librarys-functionality.md @@ -0,0 +1,10 @@ +## Developing the Library’s Functionality with Test-Driven Development + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../ch12-04-testing-the-librarys-functionality.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/ch12-04-testing-the-librarys-functionality.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/ch12-05-working-with-environment-variables.md b/src/doc/book/second-edition/src/ch12-05-working-with-environment-variables.md new file mode 100644 index 000000000..58ffd2967 --- /dev/null +++ b/src/doc/book/second-edition/src/ch12-05-working-with-environment-variables.md @@ -0,0 +1,10 @@ +## Working with Environment Variables + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../ch12-05-working-with-environment-variables.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/ch12-05-working-with-environment-variables.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/ch12-06-writing-to-stderr-instead-of-stdout.md b/src/doc/book/second-edition/src/ch12-06-writing-to-stderr-instead-of-stdout.md new file mode 100644 index 000000000..e0dc231cd --- /dev/null +++ b/src/doc/book/second-edition/src/ch12-06-writing-to-stderr-instead-of-stdout.md @@ -0,0 +1,10 @@ +## Writing Error Messages to Standard Error Instead of Standard Output + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../ch12-06-writing-to-stderr-instead-of-stdout.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/ch12-06-writing-to-stderr-instead-of-stdout.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/ch13-00-functional-features.md b/src/doc/book/second-edition/src/ch13-00-functional-features.md new file mode 100644 index 000000000..169779ffa --- /dev/null +++ b/src/doc/book/second-edition/src/ch13-00-functional-features.md @@ -0,0 +1,10 @@ +# Functional Language Features: Iterators and Closures + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../ch13-00-functional-features.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/ch13-00-functional-features.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/ch13-01-closures.md b/src/doc/book/second-edition/src/ch13-01-closures.md new file mode 100644 index 000000000..0a519e3b7 --- /dev/null +++ b/src/doc/book/second-edition/src/ch13-01-closures.md @@ -0,0 +1,10 @@ +## Closures: Anonymous Functions that Can Capture Their Environment + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../ch13-01-closures.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/ch13-01-closures.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/ch13-02-iterators.md b/src/doc/book/second-edition/src/ch13-02-iterators.md new file mode 100644 index 000000000..7afcb18cd --- /dev/null +++ b/src/doc/book/second-edition/src/ch13-02-iterators.md @@ -0,0 +1,10 @@ +## Processing a Series of Items with Iterators + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../ch13-02-iterators.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/ch13-02-iterators.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/ch13-03-improving-our-io-project.md b/src/doc/book/second-edition/src/ch13-03-improving-our-io-project.md new file mode 100644 index 000000000..75a40b1a8 --- /dev/null +++ b/src/doc/book/second-edition/src/ch13-03-improving-our-io-project.md @@ -0,0 +1,10 @@ +## Improving Our I/O Project + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../ch13-03-improving-our-io-project.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/ch13-03-improving-our-io-project.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/ch13-04-performance.md b/src/doc/book/second-edition/src/ch13-04-performance.md new file mode 100644 index 000000000..b8bd6437b --- /dev/null +++ b/src/doc/book/second-edition/src/ch13-04-performance.md @@ -0,0 +1,10 @@ +## Comparing Performance: Loops vs. Iterators + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../ch13-04-performance.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/ch13-04-performance.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/ch14-00-more-about-cargo.md b/src/doc/book/second-edition/src/ch14-00-more-about-cargo.md new file mode 100644 index 000000000..ff19c7b55 --- /dev/null +++ b/src/doc/book/second-edition/src/ch14-00-more-about-cargo.md @@ -0,0 +1,10 @@ +# More About Cargo and Crates.io + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../ch14-00-more-about-cargo.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/ch14-00-more-about-cargo.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/ch14-01-release-profiles.md b/src/doc/book/second-edition/src/ch14-01-release-profiles.md new file mode 100644 index 000000000..dcad779bc --- /dev/null +++ b/src/doc/book/second-edition/src/ch14-01-release-profiles.md @@ -0,0 +1,10 @@ +## Customizing Builds with Release Profiles + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../ch14-01-release-profiles.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/ch14-01-release-profiles.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/ch14-02-publishing-to-crates-io.md b/src/doc/book/second-edition/src/ch14-02-publishing-to-crates-io.md new file mode 100644 index 000000000..a4e2f79a8 --- /dev/null +++ b/src/doc/book/second-edition/src/ch14-02-publishing-to-crates-io.md @@ -0,0 +1,10 @@ +## Publishing a Crate to Crates.io + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../ch14-02-publishing-to-crates-io.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/ch14-02-publishing-to-crates-io.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/ch14-03-cargo-workspaces.md b/src/doc/book/second-edition/src/ch14-03-cargo-workspaces.md new file mode 100644 index 000000000..b748600e3 --- /dev/null +++ b/src/doc/book/second-edition/src/ch14-03-cargo-workspaces.md @@ -0,0 +1,10 @@ +## Cargo Workspaces + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../ch14-03-cargo-workspaces.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/ch14-03-cargo-workspaces.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/ch14-04-installing-binaries.md b/src/doc/book/second-edition/src/ch14-04-installing-binaries.md new file mode 100644 index 000000000..8f435f22c --- /dev/null +++ b/src/doc/book/second-edition/src/ch14-04-installing-binaries.md @@ -0,0 +1,10 @@ +## Installing Binaries from Crates.io with `cargo install` + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../ch14-04-installing-binaries.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/ch14-04-installing-binaries.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/ch14-05-extending-cargo.md b/src/doc/book/second-edition/src/ch14-05-extending-cargo.md new file mode 100644 index 000000000..66cae5f57 --- /dev/null +++ b/src/doc/book/second-edition/src/ch14-05-extending-cargo.md @@ -0,0 +1,10 @@ +## Extending Cargo with Custom Commands + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../ch14-05-extending-cargo.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/ch14-05-extending-cargo.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/ch15-00-smart-pointers.md b/src/doc/book/second-edition/src/ch15-00-smart-pointers.md new file mode 100644 index 000000000..720732d01 --- /dev/null +++ b/src/doc/book/second-edition/src/ch15-00-smart-pointers.md @@ -0,0 +1,10 @@ +# Smart Pointers + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../ch15-00-smart-pointers.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/ch15-00-smart-pointers.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/ch15-01-box.md b/src/doc/book/second-edition/src/ch15-01-box.md new file mode 100644 index 000000000..1ea314fc2 --- /dev/null +++ b/src/doc/book/second-edition/src/ch15-01-box.md @@ -0,0 +1,10 @@ +## Using `Box<T>` to Point to Data on the Heap + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../ch15-01-box.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/ch15-01-box.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/ch15-02-deref.md b/src/doc/book/second-edition/src/ch15-02-deref.md new file mode 100644 index 000000000..654b6befe --- /dev/null +++ b/src/doc/book/second-edition/src/ch15-02-deref.md @@ -0,0 +1,10 @@ +## Treating Smart Pointers Like Regular References with the `Deref` Trait + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../ch15-02-deref.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/ch15-02-deref.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/ch15-03-drop.md b/src/doc/book/second-edition/src/ch15-03-drop.md new file mode 100644 index 000000000..96914d355 --- /dev/null +++ b/src/doc/book/second-edition/src/ch15-03-drop.md @@ -0,0 +1,10 @@ +## Running Code on Cleanup with the `Drop` Trait + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../ch15-03-drop.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/ch15-03-drop.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/ch15-04-rc.md b/src/doc/book/second-edition/src/ch15-04-rc.md new file mode 100644 index 000000000..6179a0e1c --- /dev/null +++ b/src/doc/book/second-edition/src/ch15-04-rc.md @@ -0,0 +1,10 @@ +## `Rc<T>`, the Reference Counted Smart Pointer + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../ch15-04-rc.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/ch15-04-rc.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/ch15-05-interior-mutability.md b/src/doc/book/second-edition/src/ch15-05-interior-mutability.md new file mode 100644 index 000000000..eeeb93269 --- /dev/null +++ b/src/doc/book/second-edition/src/ch15-05-interior-mutability.md @@ -0,0 +1,10 @@ +## `RefCell<T>` and the Interior Mutability Pattern + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../ch15-05-interior-mutability.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/ch15-05-interior-mutability.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/ch15-06-reference-cycles.md b/src/doc/book/second-edition/src/ch15-06-reference-cycles.md new file mode 100644 index 000000000..8edae3ed2 --- /dev/null +++ b/src/doc/book/second-edition/src/ch15-06-reference-cycles.md @@ -0,0 +1,10 @@ +## Reference Cycles Can Leak Memory + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../ch15-06-reference-cycles.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/ch15-06-reference-cycles.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/ch16-00-concurrency.md b/src/doc/book/second-edition/src/ch16-00-concurrency.md new file mode 100644 index 000000000..9069bd985 --- /dev/null +++ b/src/doc/book/second-edition/src/ch16-00-concurrency.md @@ -0,0 +1,10 @@ +# Fearless Concurrency + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../ch16-00-concurrency.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/ch16-00-concurrency.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/ch16-01-threads.md b/src/doc/book/second-edition/src/ch16-01-threads.md new file mode 100644 index 000000000..0d287512d --- /dev/null +++ b/src/doc/book/second-edition/src/ch16-01-threads.md @@ -0,0 +1,10 @@ +## Using Threads to Run Code Simultaneously + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../ch16-01-threads.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/ch16-01-threads.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/ch16-02-message-passing.md b/src/doc/book/second-edition/src/ch16-02-message-passing.md new file mode 100644 index 000000000..186ab0b59 --- /dev/null +++ b/src/doc/book/second-edition/src/ch16-02-message-passing.md @@ -0,0 +1,10 @@ +## Using Message Passing to Transfer Data Between Threads + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../ch16-02-message-passing.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/ch16-02-message-passing.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/ch16-03-shared-state.md b/src/doc/book/second-edition/src/ch16-03-shared-state.md new file mode 100644 index 000000000..dbd58bfba --- /dev/null +++ b/src/doc/book/second-edition/src/ch16-03-shared-state.md @@ -0,0 +1,10 @@ +## Shared-State Concurrency + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../ch16-03-shared-state.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/ch16-03-shared-state.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/ch16-04-extensible-concurrency-sync-and-send.md b/src/doc/book/second-edition/src/ch16-04-extensible-concurrency-sync-and-send.md new file mode 100644 index 000000000..81fb6cb8b --- /dev/null +++ b/src/doc/book/second-edition/src/ch16-04-extensible-concurrency-sync-and-send.md @@ -0,0 +1,10 @@ +## Extensible Concurrency with the `Sync` and `Send` Traits + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../ch16-04-extensible-concurrency-sync-and-send.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/ch16-04-extensible-concurrency-sync-and-send.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/ch17-00-oop.md b/src/doc/book/second-edition/src/ch17-00-oop.md new file mode 100644 index 000000000..752130915 --- /dev/null +++ b/src/doc/book/second-edition/src/ch17-00-oop.md @@ -0,0 +1,10 @@ +# Object Oriented Programming Features of Rust + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../ch17-00-oop.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/ch17-00-oop.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/ch17-01-what-is-oo.md b/src/doc/book/second-edition/src/ch17-01-what-is-oo.md new file mode 100644 index 000000000..82c1ed8f9 --- /dev/null +++ b/src/doc/book/second-edition/src/ch17-01-what-is-oo.md @@ -0,0 +1,10 @@ +## Characteristics of Object-Oriented Languages + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../ch17-01-what-is-oo.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/ch17-01-what-is-oo.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/ch17-02-trait-objects.md b/src/doc/book/second-edition/src/ch17-02-trait-objects.md new file mode 100644 index 000000000..35f0c1883 --- /dev/null +++ b/src/doc/book/second-edition/src/ch17-02-trait-objects.md @@ -0,0 +1,10 @@ +## Using Trait Objects that Allow for Values of Different Types + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../ch17-02-trait-objects.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/ch17-02-trait-objects.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/ch17-03-oo-design-patterns.md b/src/doc/book/second-edition/src/ch17-03-oo-design-patterns.md new file mode 100644 index 000000000..46bec2692 --- /dev/null +++ b/src/doc/book/second-edition/src/ch17-03-oo-design-patterns.md @@ -0,0 +1,10 @@ +## Implementing an Object-Oriented Design Pattern + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../ch17-03-oo-design-patterns.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/ch17-03-oo-design-patterns.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/ch18-00-patterns.md b/src/doc/book/second-edition/src/ch18-00-patterns.md new file mode 100644 index 000000000..6bd221fa3 --- /dev/null +++ b/src/doc/book/second-edition/src/ch18-00-patterns.md @@ -0,0 +1,10 @@ +# Patterns and Matching + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../ch18-00-patterns.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/ch18-00-patterns.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/ch18-01-all-the-places-for-patterns.md b/src/doc/book/second-edition/src/ch18-01-all-the-places-for-patterns.md new file mode 100644 index 000000000..0374a9a88 --- /dev/null +++ b/src/doc/book/second-edition/src/ch18-01-all-the-places-for-patterns.md @@ -0,0 +1,10 @@ +## All the Places Patterns Can Be Used + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../ch18-01-all-the-places-for-patterns.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/ch18-01-all-the-places-for-patterns.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/ch18-02-refutability.md b/src/doc/book/second-edition/src/ch18-02-refutability.md new file mode 100644 index 000000000..2ef5206af --- /dev/null +++ b/src/doc/book/second-edition/src/ch18-02-refutability.md @@ -0,0 +1,10 @@ +## Refutability: Whether a Pattern Might Fail to Match + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../ch18-02-refutability.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/ch18-02-refutability.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/ch18-03-pattern-syntax.md b/src/doc/book/second-edition/src/ch18-03-pattern-syntax.md new file mode 100644 index 000000000..31c5f7920 --- /dev/null +++ b/src/doc/book/second-edition/src/ch18-03-pattern-syntax.md @@ -0,0 +1,10 @@ +## Pattern Syntax + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../ch18-03-pattern-syntax.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/ch18-03-pattern-syntax.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/ch19-00-advanced-features.md b/src/doc/book/second-edition/src/ch19-00-advanced-features.md new file mode 100644 index 000000000..f6df05f0a --- /dev/null +++ b/src/doc/book/second-edition/src/ch19-00-advanced-features.md @@ -0,0 +1,10 @@ +# Advanced Features + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../ch19-00-advanced-features.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/ch19-00-advanced-features.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/ch19-01-unsafe-rust.md b/src/doc/book/second-edition/src/ch19-01-unsafe-rust.md new file mode 100644 index 000000000..8a9a29c09 --- /dev/null +++ b/src/doc/book/second-edition/src/ch19-01-unsafe-rust.md @@ -0,0 +1,10 @@ +## Unsafe Rust + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../ch19-01-unsafe-rust.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/ch19-01-unsafe-rust.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/ch19-02-advanced-lifetimes.md b/src/doc/book/second-edition/src/ch19-02-advanced-lifetimes.md new file mode 100644 index 000000000..374382886 --- /dev/null +++ b/src/doc/book/second-edition/src/ch19-02-advanced-lifetimes.md @@ -0,0 +1,10 @@ +## Advanced Lifetimes + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../index.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/ch19-02-advanced-lifetimes.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/ch19-03-advanced-traits.md b/src/doc/book/second-edition/src/ch19-03-advanced-traits.md new file mode 100644 index 000000000..cc8433fb3 --- /dev/null +++ b/src/doc/book/second-edition/src/ch19-03-advanced-traits.md @@ -0,0 +1,10 @@ +## Advanced Traits + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../ch19-03-advanced-traits.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/ch19-03-advanced-traits.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/ch19-04-advanced-types.md b/src/doc/book/second-edition/src/ch19-04-advanced-types.md new file mode 100644 index 000000000..508145729 --- /dev/null +++ b/src/doc/book/second-edition/src/ch19-04-advanced-types.md @@ -0,0 +1,10 @@ +## Advanced Types + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../ch19-04-advanced-types.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/ch19-04-advanced-types.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/ch19-05-advanced-functions-and-closures.md b/src/doc/book/second-edition/src/ch19-05-advanced-functions-and-closures.md new file mode 100644 index 000000000..18d369c60 --- /dev/null +++ b/src/doc/book/second-edition/src/ch19-05-advanced-functions-and-closures.md @@ -0,0 +1,10 @@ +## Advanced Functions and Closures + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../ch19-05-advanced-functions-and-closures.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/ch19-05-advanced-functions-and-closures.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/ch20-00-final-project-a-web-server.md b/src/doc/book/second-edition/src/ch20-00-final-project-a-web-server.md new file mode 100644 index 000000000..059d6824c --- /dev/null +++ b/src/doc/book/second-edition/src/ch20-00-final-project-a-web-server.md @@ -0,0 +1,10 @@ +# Final Project: Building a Multithreaded Web Server + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../ch20-00-final-project-a-web-server.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/ch20-00-final-project-a-web-server.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/ch20-01-single-threaded.md b/src/doc/book/second-edition/src/ch20-01-single-threaded.md new file mode 100644 index 000000000..5ff97a2ee --- /dev/null +++ b/src/doc/book/second-edition/src/ch20-01-single-threaded.md @@ -0,0 +1,10 @@ +## Building a Single-Threaded Web Server + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../ch20-01-single-threaded.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/ch20-01-single-threaded.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/ch20-02-multithreaded.md b/src/doc/book/second-edition/src/ch20-02-multithreaded.md new file mode 100644 index 000000000..0695d2451 --- /dev/null +++ b/src/doc/book/second-edition/src/ch20-02-multithreaded.md @@ -0,0 +1,10 @@ +## Turning Our Single-Threaded Server into a Multithreaded Server + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../ch20-02-multithreaded.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/ch20-02-multithreaded.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/ch20-03-graceful-shutdown-and-cleanup.md b/src/doc/book/second-edition/src/ch20-03-graceful-shutdown-and-cleanup.md new file mode 100644 index 000000000..eb7ed5987 --- /dev/null +++ b/src/doc/book/second-edition/src/ch20-03-graceful-shutdown-and-cleanup.md @@ -0,0 +1,10 @@ +## Graceful Shutdown and Cleanup + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../ch20-03-graceful-shutdown-and-cleanup.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/ch20-03-graceful-shutdown-and-cleanup.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/foreword.md b/src/doc/book/second-edition/src/foreword.md new file mode 100644 index 000000000..f369abbf6 --- /dev/null +++ b/src/doc/book/second-edition/src/foreword.md @@ -0,0 +1,10 @@ +# Foreword + +The second edition of the book is no longer distributed with Rust's documentation. + +If you came here via a link or web search, you may want to check out [the current +version of the book](../foreword.html) instead. + +If you have an internet connection, you can [find a copy distributed with +Rust +1.30](https://doc.rust-lang.org/1.30.0/book/second-edition/foreword.html).
\ No newline at end of file diff --git a/src/doc/book/second-edition/src/img/trpl04-01.svg b/src/doc/book/second-edition/src/img/trpl04-01.svg new file mode 100644 index 000000000..314f53ba1 --- /dev/null +++ b/src/doc/book/second-edition/src/img/trpl04-01.svg @@ -0,0 +1,68 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.40.1 (20161225.0304) + --> +<!-- Title: %3 Pages: 1 --> +<svg + viewBox="0.00 0.00 1000.00 700.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="graph0" class="graph" transform="scale(4.1667 4.1667) rotate(0) translate(4 152)"> +<title>%3</title> +<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-152 233,-152 233,4 -4,4"/> +<!-- table0 --> +<g id="node1" class="node"> +<title>table0</title> +<polyline fill="none" stroke="#000000" points="8,-124 96,-124 "/> +<text text-anchor="start" x="45.7759" y="-129.8" font-family="Times,serif" font-size="14.00" fill="#000000">s1</text> +<polygon fill="none" stroke="#000000" points="8,-104 8,-124 60,-124 60,-104 8,-104"/> +<text text-anchor="start" x="18.8413" y="-109.8" font-family="Times,serif" font-size="14.00" fill="#000000">name</text> +<polygon fill="none" stroke="#000000" points="60,-104 60,-124 96,-124 96,-104 60,-104"/> +<text text-anchor="start" x="62.8413" y="-109.8" font-family="Times,serif" font-size="14.00" fill="#000000">value</text> +<polygon fill="none" stroke="#000000" points="8,-84 8,-104 60,-104 60,-84 8,-84"/> +<text text-anchor="start" x="26.2241" y="-89.8" font-family="Times,serif" font-size="14.00" fill="#000000">ptr</text> +<polygon fill="none" stroke="#000000" points="60,-84 60,-104 96,-104 96,-84 60,-84"/> +<polygon fill="none" stroke="#000000" points="8,-64 8,-84 60,-84 60,-64 8,-64"/> +<text text-anchor="start" x="25.4482" y="-69.8" font-family="Times,serif" font-size="14.00" fill="#000000">len</text> +<polygon fill="none" stroke="#000000" points="60,-64 60,-84 96,-84 96,-64 60,-64"/> +<text text-anchor="start" x="74.5" y="-69.8" font-family="Times,serif" font-size="14.00" fill="#000000">5</text> +<polygon fill="none" stroke="#000000" points="8,-44 8,-64 60,-64 60,-44 8,-44"/> +<text text-anchor="start" x="10.6826" y="-49.8" font-family="Times,serif" font-size="14.00" fill="#000000">capacity</text> +<polygon fill="none" stroke="#000000" points="60,-44 60,-64 96,-64 96,-44 60,-44"/> +<text text-anchor="start" x="74.5" y="-49.8" font-family="Times,serif" font-size="14.00" fill="#000000">5</text> +</g> +<!-- table1 --> +<g id="node2" class="node"> +<title>table1</title> +<polygon fill="none" stroke="#000000" points="148.5,-104 148.5,-124 185.5,-124 185.5,-104 148.5,-104"/> +<text text-anchor="start" x="151.4482" y="-109.8" font-family="Times,serif" font-size="14.00" fill="#000000">index</text> +<polygon fill="none" stroke="#000000" points="185.5,-104 185.5,-124 221.5,-124 221.5,-104 185.5,-104"/> +<text text-anchor="start" x="188.3413" y="-109.8" font-family="Times,serif" font-size="14.00" fill="#000000">value</text> +<polygon fill="none" stroke="#000000" points="148.5,-84 148.5,-104 185.5,-104 185.5,-84 148.5,-84"/> +<text text-anchor="start" x="163.5" y="-89.8" font-family="Times,serif" font-size="14.00" fill="#000000">0</text> +<polygon fill="none" stroke="#000000" points="185.5,-84 185.5,-104 221.5,-104 221.5,-84 185.5,-84"/> +<text text-anchor="start" x="200" y="-89.8" font-family="Times,serif" font-size="14.00" fill="#000000">h</text> +<polygon fill="none" stroke="#000000" points="148.5,-64 148.5,-84 185.5,-84 185.5,-64 148.5,-64"/> +<text text-anchor="start" x="163.5" y="-69.8" font-family="Times,serif" font-size="14.00" fill="#000000">1</text> +<polygon fill="none" stroke="#000000" points="185.5,-64 185.5,-84 221.5,-84 221.5,-64 185.5,-64"/> +<text text-anchor="start" x="200.3931" y="-69.8" font-family="Times,serif" font-size="14.00" fill="#000000">e</text> +<polygon fill="none" stroke="#000000" points="148.5,-44 148.5,-64 185.5,-64 185.5,-44 148.5,-44"/> +<text text-anchor="start" x="163.5" y="-49.8" font-family="Times,serif" font-size="14.00" fill="#000000">2</text> +<polygon fill="none" stroke="#000000" points="185.5,-44 185.5,-64 221.5,-64 221.5,-44 185.5,-44"/> +<text text-anchor="start" x="201.5552" y="-49.8" font-family="Times,serif" font-size="14.00" fill="#000000">l</text> +<polygon fill="none" stroke="#000000" points="148.5,-24 148.5,-44 185.5,-44 185.5,-24 148.5,-24"/> +<text text-anchor="start" x="163.5" y="-29.8" font-family="Times,serif" font-size="14.00" fill="#000000">3</text> +<polygon fill="none" stroke="#000000" points="185.5,-24 185.5,-44 221.5,-44 221.5,-24 185.5,-24"/> +<text text-anchor="start" x="201.5552" y="-29.8" font-family="Times,serif" font-size="14.00" fill="#000000">l</text> +<polygon fill="none" stroke="#000000" points="148.5,-4 148.5,-24 185.5,-24 185.5,-4 148.5,-4"/> +<text text-anchor="start" x="163.5" y="-9.8" font-family="Times,serif" font-size="14.00" fill="#000000">4</text> +<polygon fill="none" stroke="#000000" points="185.5,-4 185.5,-24 221.5,-24 221.5,-4 185.5,-4"/> +<text text-anchor="start" x="200" y="-9.8" font-family="Times,serif" font-size="14.00" fill="#000000">o</text> +</g> +<!-- table0->table1 --> +<g id="edge1" class="edge"> +<title>table0:c->table1:pointee</title> +<path fill="none" stroke="#000000" d="M78,-94C78,-94 109.3406,-94 138.3797,-94"/> +<polygon fill="#000000" stroke="#000000" points="138.5,-97.5001 148.5,-94 138.5,-90.5001 138.5,-97.5001"/> +</g> +</g> +</svg> diff --git a/src/doc/book/second-edition/src/img/trpl04-02.svg b/src/doc/book/second-edition/src/img/trpl04-02.svg new file mode 100644 index 000000000..70d490f0b --- /dev/null +++ b/src/doc/book/second-edition/src/img/trpl04-02.svg @@ -0,0 +1,95 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.40.1 (20161225.0304) + --> +<!-- Title: %3 Pages: 1 --> +<svg + viewBox="0.00 0.00 1000.00 1000.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="graph0" class="graph" transform="scale(4.1667 4.1667) rotate(0) translate(4 238)"> +<title>%3</title> +<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-238 233,-238 233,4 -4,4"/> +<!-- table0 --> +<g id="node1" class="node"> +<title>table0</title> +<polyline fill="none" stroke="#000000" points="8,-210 96,-210 "/> +<text text-anchor="start" x="45.7759" y="-215.8" font-family="Times,serif" font-size="14.00" fill="#000000">s1</text> +<polygon fill="none" stroke="#000000" points="8,-190 8,-210 60,-210 60,-190 8,-190"/> +<text text-anchor="start" x="18.8413" y="-195.8" font-family="Times,serif" font-size="14.00" fill="#000000">name</text> +<polygon fill="none" stroke="#000000" points="60,-190 60,-210 96,-210 96,-190 60,-190"/> +<text text-anchor="start" x="62.8413" y="-195.8" font-family="Times,serif" font-size="14.00" fill="#000000">value</text> +<polygon fill="none" stroke="#000000" points="8,-170 8,-190 60,-190 60,-170 8,-170"/> +<text text-anchor="start" x="26.2241" y="-175.8" font-family="Times,serif" font-size="14.00" fill="#000000">ptr</text> +<polygon fill="none" stroke="#000000" points="60,-170 60,-190 96,-190 96,-170 60,-170"/> +<polygon fill="none" stroke="#000000" points="8,-150 8,-170 60,-170 60,-150 8,-150"/> +<text text-anchor="start" x="25.4482" y="-155.8" font-family="Times,serif" font-size="14.00" fill="#000000">len</text> +<polygon fill="none" stroke="#000000" points="60,-150 60,-170 96,-170 96,-150 60,-150"/> +<text text-anchor="start" x="74.5" y="-155.8" font-family="Times,serif" font-size="14.00" fill="#000000">5</text> +<polygon fill="none" stroke="#000000" points="8,-130 8,-150 60,-150 60,-130 8,-130"/> +<text text-anchor="start" x="10.6826" y="-135.8" font-family="Times,serif" font-size="14.00" fill="#000000">capacity</text> +<polygon fill="none" stroke="#000000" points="60,-130 60,-150 96,-150 96,-130 60,-130"/> +<text text-anchor="start" x="74.5" y="-135.8" font-family="Times,serif" font-size="14.00" fill="#000000">5</text> +</g> +<!-- table1 --> +<g id="node3" class="node"> +<title>table1</title> +<polygon fill="none" stroke="#000000" points="148.5,-127 148.5,-147 185.5,-147 185.5,-127 148.5,-127"/> +<text text-anchor="start" x="151.4482" y="-132.8" font-family="Times,serif" font-size="14.00" fill="#000000">index</text> +<polygon fill="none" stroke="#000000" points="185.5,-127 185.5,-147 221.5,-147 221.5,-127 185.5,-127"/> +<text text-anchor="start" x="188.3413" y="-132.8" font-family="Times,serif" font-size="14.00" fill="#000000">value</text> +<polygon fill="none" stroke="#000000" points="148.5,-107 148.5,-127 185.5,-127 185.5,-107 148.5,-107"/> +<text text-anchor="start" x="163.5" y="-112.8" font-family="Times,serif" font-size="14.00" fill="#000000">0</text> +<polygon fill="none" stroke="#000000" points="185.5,-107 185.5,-127 221.5,-127 221.5,-107 185.5,-107"/> +<text text-anchor="start" x="200" y="-112.8" font-family="Times,serif" font-size="14.00" fill="#000000">h</text> +<polygon fill="none" stroke="#000000" points="148.5,-87 148.5,-107 185.5,-107 185.5,-87 148.5,-87"/> +<text text-anchor="start" x="163.5" y="-92.8" font-family="Times,serif" font-size="14.00" fill="#000000">1</text> +<polygon fill="none" stroke="#000000" points="185.5,-87 185.5,-107 221.5,-107 221.5,-87 185.5,-87"/> +<text text-anchor="start" x="200.3931" y="-92.8" font-family="Times,serif" font-size="14.00" fill="#000000">e</text> +<polygon fill="none" stroke="#000000" points="148.5,-67 148.5,-87 185.5,-87 185.5,-67 148.5,-67"/> +<text text-anchor="start" x="163.5" y="-72.8" font-family="Times,serif" font-size="14.00" fill="#000000">2</text> +<polygon fill="none" stroke="#000000" points="185.5,-67 185.5,-87 221.5,-87 221.5,-67 185.5,-67"/> +<text text-anchor="start" x="201.5552" y="-72.8" font-family="Times,serif" font-size="14.00" fill="#000000">l</text> +<polygon fill="none" stroke="#000000" points="148.5,-47 148.5,-67 185.5,-67 185.5,-47 148.5,-47"/> +<text text-anchor="start" x="163.5" y="-52.8" font-family="Times,serif" font-size="14.00" fill="#000000">3</text> +<polygon fill="none" stroke="#000000" points="185.5,-47 185.5,-67 221.5,-67 221.5,-47 185.5,-47"/> +<text text-anchor="start" x="201.5552" y="-52.8" font-family="Times,serif" font-size="14.00" fill="#000000">l</text> +<polygon fill="none" stroke="#000000" points="148.5,-27 148.5,-47 185.5,-47 185.5,-27 148.5,-27"/> +<text text-anchor="start" x="163.5" y="-32.8" font-family="Times,serif" font-size="14.00" fill="#000000">4</text> +<polygon fill="none" stroke="#000000" points="185.5,-27 185.5,-47 221.5,-47 221.5,-27 185.5,-27"/> +<text text-anchor="start" x="200" y="-32.8" font-family="Times,serif" font-size="14.00" fill="#000000">o</text> +</g> +<!-- table0->table1 --> +<g id="edge1" class="edge"> +<title>table0:c->table1:pointee</title> +<path fill="none" stroke="#000000" d="M78,-180C78,-180 101.9982,-126.912 138.4405,-118.2023"/> +<polygon fill="#000000" stroke="#000000" points="138.986,-121.6621 148.5,-117 138.1553,-114.7115 138.986,-121.6621"/> +</g> +<!-- table3 --> +<g id="node2" class="node"> +<title>table3</title> +<polyline fill="none" stroke="#000000" points="8,-84 96,-84 "/> +<text text-anchor="start" x="45.7759" y="-89.8" font-family="Times,serif" font-size="14.00" fill="#000000">s2</text> +<polygon fill="none" stroke="#000000" points="8,-64 8,-84 60,-84 60,-64 8,-64"/> +<text text-anchor="start" x="18.8413" y="-69.8" font-family="Times,serif" font-size="14.00" fill="#000000">name</text> +<polygon fill="none" stroke="#000000" points="60,-64 60,-84 96,-84 96,-64 60,-64"/> +<text text-anchor="start" x="62.8413" y="-69.8" font-family="Times,serif" font-size="14.00" fill="#000000">value</text> +<polygon fill="none" stroke="#000000" points="8,-44 8,-64 60,-64 60,-44 8,-44"/> +<text text-anchor="start" x="26.2241" y="-49.8" font-family="Times,serif" font-size="14.00" fill="#000000">ptr</text> +<polygon fill="none" stroke="#000000" points="60,-44 60,-64 96,-64 96,-44 60,-44"/> +<polygon fill="none" stroke="#000000" points="8,-24 8,-44 60,-44 60,-24 8,-24"/> +<text text-anchor="start" x="25.4482" y="-29.8" font-family="Times,serif" font-size="14.00" fill="#000000">len</text> +<polygon fill="none" stroke="#000000" points="60,-24 60,-44 96,-44 96,-24 60,-24"/> +<text text-anchor="start" x="74.5" y="-29.8" font-family="Times,serif" font-size="14.00" fill="#000000">5</text> +<polygon fill="none" stroke="#000000" points="8,-4 8,-24 60,-24 60,-4 8,-4"/> +<text text-anchor="start" x="10.6826" y="-9.8" font-family="Times,serif" font-size="14.00" fill="#000000">capacity</text> +<polygon fill="none" stroke="#000000" points="60,-4 60,-24 96,-24 96,-4 60,-4"/> +<text text-anchor="start" x="74.5" y="-9.8" font-family="Times,serif" font-size="14.00" fill="#000000">5</text> +</g> +<!-- table3->table1 --> +<g id="edge2" class="edge"> +<title>table3:c->table1:pointee</title> +<path fill="none" stroke="#000000" d="M78,-54C78,-54 101.9982,-107.088 138.4405,-115.7977"/> +<polygon fill="#000000" stroke="#000000" points="138.1553,-119.2885 148.5,-117 138.986,-112.3379 138.1553,-119.2885"/> +</g> +</g> +</svg> diff --git a/src/doc/book/second-edition/src/img/trpl04-03.svg b/src/doc/book/second-edition/src/img/trpl04-03.svg new file mode 100644 index 000000000..7c153e23a --- /dev/null +++ b/src/doc/book/second-edition/src/img/trpl04-03.svg @@ -0,0 +1,123 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.40.1 (20161225.0304) + --> +<!-- Title: %3 Pages: 1 --> +<svg + viewBox="0.00 0.00 1000.00 1300.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="graph0" class="graph" transform="scale(4.1667 4.1667) rotate(0) translate(4 298)"> +<title>%3</title> +<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-298 233,-298 233,4 -4,4"/> +<!-- table0 --> +<g id="node1" class="node"> +<title>table0</title> +<polyline fill="none" stroke="#000000" points="8,-124 96,-124 "/> +<text text-anchor="start" x="45.7759" y="-129.8" font-family="Times,serif" font-size="14.00" fill="#000000">s2</text> +<polygon fill="none" stroke="#000000" points="8,-104 8,-124 60,-124 60,-104 8,-104"/> +<text text-anchor="start" x="18.8413" y="-109.8" font-family="Times,serif" font-size="14.00" fill="#000000">name</text> +<polygon fill="none" stroke="#000000" points="60,-104 60,-124 96,-124 96,-104 60,-104"/> +<text text-anchor="start" x="62.8413" y="-109.8" font-family="Times,serif" font-size="14.00" fill="#000000">value</text> +<polygon fill="none" stroke="#000000" points="8,-84 8,-104 60,-104 60,-84 8,-84"/> +<text text-anchor="start" x="26.2241" y="-89.8" font-family="Times,serif" font-size="14.00" fill="#000000">ptr</text> +<polygon fill="none" stroke="#000000" points="60,-84 60,-104 96,-104 96,-84 60,-84"/> +<polygon fill="none" stroke="#000000" points="8,-64 8,-84 60,-84 60,-64 8,-64"/> +<text text-anchor="start" x="25.4482" y="-69.8" font-family="Times,serif" font-size="14.00" fill="#000000">len</text> +<polygon fill="none" stroke="#000000" points="60,-64 60,-84 96,-84 96,-64 60,-64"/> +<text text-anchor="start" x="74.5" y="-69.8" font-family="Times,serif" font-size="14.00" fill="#000000">5</text> +<polygon fill="none" stroke="#000000" points="8,-44 8,-64 60,-64 60,-44 8,-44"/> +<text text-anchor="start" x="10.6826" y="-49.8" font-family="Times,serif" font-size="14.00" fill="#000000">capacity</text> +<polygon fill="none" stroke="#000000" points="60,-44 60,-64 96,-64 96,-44 60,-44"/> +<text text-anchor="start" x="74.5" y="-49.8" font-family="Times,serif" font-size="14.00" fill="#000000">5</text> +</g> +<!-- table1 --> +<g id="node2" class="node"> +<title>table1</title> +<polygon fill="none" stroke="#000000" points="148.5,-104 148.5,-124 185.5,-124 185.5,-104 148.5,-104"/> +<text text-anchor="start" x="151.4482" y="-109.8" font-family="Times,serif" font-size="14.00" fill="#000000">index</text> +<polygon fill="none" stroke="#000000" points="185.5,-104 185.5,-124 221.5,-124 221.5,-104 185.5,-104"/> +<text text-anchor="start" x="188.3413" y="-109.8" font-family="Times,serif" font-size="14.00" fill="#000000">value</text> +<polygon fill="none" stroke="#000000" points="148.5,-84 148.5,-104 185.5,-104 185.5,-84 148.5,-84"/> +<text text-anchor="start" x="163.5" y="-89.8" font-family="Times,serif" font-size="14.00" fill="#000000">0</text> +<polygon fill="none" stroke="#000000" points="185.5,-84 185.5,-104 221.5,-104 221.5,-84 185.5,-84"/> +<text text-anchor="start" x="200" y="-89.8" font-family="Times,serif" font-size="14.00" fill="#000000">h</text> +<polygon fill="none" stroke="#000000" points="148.5,-64 148.5,-84 185.5,-84 185.5,-64 148.5,-64"/> +<text text-anchor="start" x="163.5" y="-69.8" font-family="Times,serif" font-size="14.00" fill="#000000">1</text> +<polygon fill="none" stroke="#000000" points="185.5,-64 185.5,-84 221.5,-84 221.5,-64 185.5,-64"/> +<text text-anchor="start" x="200.3931" y="-69.8" font-family="Times,serif" font-size="14.00" fill="#000000">e</text> +<polygon fill="none" stroke="#000000" points="148.5,-44 148.5,-64 185.5,-64 185.5,-44 148.5,-44"/> +<text text-anchor="start" x="163.5" y="-49.8" font-family="Times,serif" font-size="14.00" fill="#000000">2</text> +<polygon fill="none" stroke="#000000" points="185.5,-44 185.5,-64 221.5,-64 221.5,-44 185.5,-44"/> +<text text-anchor="start" x="201.5552" y="-49.8" font-family="Times,serif" font-size="14.00" fill="#000000">l</text> +<polygon fill="none" stroke="#000000" points="148.5,-24 148.5,-44 185.5,-44 185.5,-24 148.5,-24"/> +<text text-anchor="start" x="163.5" y="-29.8" font-family="Times,serif" font-size="14.00" fill="#000000">3</text> +<polygon fill="none" stroke="#000000" points="185.5,-24 185.5,-44 221.5,-44 221.5,-24 185.5,-24"/> +<text text-anchor="start" x="201.5552" y="-29.8" font-family="Times,serif" font-size="14.00" fill="#000000">l</text> +<polygon fill="none" stroke="#000000" points="148.5,-4 148.5,-24 185.5,-24 185.5,-4 148.5,-4"/> +<text text-anchor="start" x="163.5" y="-9.8" font-family="Times,serif" font-size="14.00" fill="#000000">4</text> +<polygon fill="none" stroke="#000000" points="185.5,-4 185.5,-24 221.5,-24 221.5,-4 185.5,-4"/> +<text text-anchor="start" x="200" y="-9.8" font-family="Times,serif" font-size="14.00" fill="#000000">o</text> +</g> +<!-- table0->table1 --> +<g id="edge1" class="edge"> +<title>table0:c->table1:pointee</title> +<path fill="none" stroke="#000000" d="M78,-94C78,-94 109.3406,-94 138.3797,-94"/> +<polygon fill="#000000" stroke="#000000" points="138.5,-97.5001 148.5,-94 138.5,-90.5001 138.5,-97.5001"/> +</g> +<!-- table3 --> +<g id="node3" class="node"> +<title>table3</title> +<polyline fill="none" stroke="#000000" points="8,-270 96,-270 "/> +<text text-anchor="start" x="45.7759" y="-275.8" font-family="Times,serif" font-size="14.00" fill="#000000">s1</text> +<polygon fill="none" stroke="#000000" points="8,-250 8,-270 60,-270 60,-250 8,-250"/> +<text text-anchor="start" x="18.8413" y="-255.8" font-family="Times,serif" font-size="14.00" fill="#000000">name</text> +<polygon fill="none" stroke="#000000" points="60,-250 60,-270 96,-270 96,-250 60,-250"/> +<text text-anchor="start" x="62.8413" y="-255.8" font-family="Times,serif" font-size="14.00" fill="#000000">value</text> +<polygon fill="none" stroke="#000000" points="8,-230 8,-250 60,-250 60,-230 8,-230"/> +<text text-anchor="start" x="26.2241" y="-235.8" font-family="Times,serif" font-size="14.00" fill="#000000">ptr</text> +<polygon fill="none" stroke="#000000" points="60,-230 60,-250 96,-250 96,-230 60,-230"/> +<polygon fill="none" stroke="#000000" points="8,-210 8,-230 60,-230 60,-210 8,-210"/> +<text text-anchor="start" x="25.4482" y="-215.8" font-family="Times,serif" font-size="14.00" fill="#000000">len</text> +<polygon fill="none" stroke="#000000" points="60,-210 60,-230 96,-230 96,-210 60,-210"/> +<text text-anchor="start" x="74.5" y="-215.8" font-family="Times,serif" font-size="14.00" fill="#000000">5</text> +<polygon fill="none" stroke="#000000" points="8,-190 8,-210 60,-210 60,-190 8,-190"/> +<text text-anchor="start" x="10.6826" y="-195.8" font-family="Times,serif" font-size="14.00" fill="#000000">capacity</text> +<polygon fill="none" stroke="#000000" points="60,-190 60,-210 96,-210 96,-190 60,-190"/> +<text text-anchor="start" x="74.5" y="-195.8" font-family="Times,serif" font-size="14.00" fill="#000000">5</text> +</g> +<!-- table4 --> +<g id="node4" class="node"> +<title>table4</title> +<polygon fill="none" stroke="#000000" points="148.5,-250 148.5,-270 185.5,-270 185.5,-250 148.5,-250"/> +<text text-anchor="start" x="151.4482" y="-255.8" font-family="Times,serif" font-size="14.00" fill="#000000">index</text> +<polygon fill="none" stroke="#000000" points="185.5,-250 185.5,-270 221.5,-270 221.5,-250 185.5,-250"/> +<text text-anchor="start" x="188.3413" y="-255.8" font-family="Times,serif" font-size="14.00" fill="#000000">value</text> +<polygon fill="none" stroke="#000000" points="148.5,-230 148.5,-250 185.5,-250 185.5,-230 148.5,-230"/> +<text text-anchor="start" x="163.5" y="-235.8" font-family="Times,serif" font-size="14.00" fill="#000000">0</text> +<polygon fill="none" stroke="#000000" points="185.5,-230 185.5,-250 221.5,-250 221.5,-230 185.5,-230"/> +<text text-anchor="start" x="200" y="-235.8" font-family="Times,serif" font-size="14.00" fill="#000000">h</text> +<polygon fill="none" stroke="#000000" points="148.5,-210 148.5,-230 185.5,-230 185.5,-210 148.5,-210"/> +<text text-anchor="start" x="163.5" y="-215.8" font-family="Times,serif" font-size="14.00" fill="#000000">1</text> +<polygon fill="none" stroke="#000000" points="185.5,-210 185.5,-230 221.5,-230 221.5,-210 185.5,-210"/> +<text text-anchor="start" x="200.3931" y="-215.8" font-family="Times,serif" font-size="14.00" fill="#000000">e</text> +<polygon fill="none" stroke="#000000" points="148.5,-190 148.5,-210 185.5,-210 185.5,-190 148.5,-190"/> +<text text-anchor="start" x="163.5" y="-195.8" font-family="Times,serif" font-size="14.00" fill="#000000">2</text> +<polygon fill="none" stroke="#000000" points="185.5,-190 185.5,-210 221.5,-210 221.5,-190 185.5,-190"/> +<text text-anchor="start" x="201.5552" y="-195.8" font-family="Times,serif" font-size="14.00" fill="#000000">l</text> +<polygon fill="none" stroke="#000000" points="148.5,-170 148.5,-190 185.5,-190 185.5,-170 148.5,-170"/> +<text text-anchor="start" x="163.5" y="-175.8" font-family="Times,serif" font-size="14.00" fill="#000000">3</text> +<polygon fill="none" stroke="#000000" points="185.5,-170 185.5,-190 221.5,-190 221.5,-170 185.5,-170"/> +<text text-anchor="start" x="201.5552" y="-175.8" font-family="Times,serif" font-size="14.00" fill="#000000">l</text> +<polygon fill="none" stroke="#000000" points="148.5,-150 148.5,-170 185.5,-170 185.5,-150 148.5,-150"/> +<text text-anchor="start" x="163.5" y="-155.8" font-family="Times,serif" font-size="14.00" fill="#000000">4</text> +<polygon fill="none" stroke="#000000" points="185.5,-150 185.5,-170 221.5,-170 221.5,-150 185.5,-150"/> +<text text-anchor="start" x="200" y="-155.8" font-family="Times,serif" font-size="14.00" fill="#000000">o</text> +</g> +<!-- table3->table4 --> +<g id="edge2" class="edge"> +<title>table3:c->table4:pointee</title> +<path fill="none" stroke="#000000" d="M78,-240C78,-240 109.3406,-240 138.3797,-240"/> +<polygon fill="#000000" stroke="#000000" points="138.5,-243.5001 148.5,-240 138.5,-236.5001 138.5,-243.5001"/> +</g> +</g> +</svg> diff --git a/src/doc/book/second-edition/src/img/trpl04-04.svg b/src/doc/book/second-edition/src/img/trpl04-04.svg new file mode 100644 index 000000000..a0513abd9 --- /dev/null +++ b/src/doc/book/second-edition/src/img/trpl04-04.svg @@ -0,0 +1,96 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.40.1 (20161225.0304) + --> +<!-- Title: %3 Pages: 1 --> +<svg + viewBox="0.00 0.00 1000.00 1000.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="graph0" class="graph" transform="scale(4.1667 4.1667) rotate(0) translate(4 238)"> +<title>%3</title> +<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-238 233,-238 233,4 -4,4"/> +<!-- table0 --> +<g id="node1" class="node"> +<title>table0</title> +<polygon fill="#c0c0c0" stroke="transparent" points="8,-130 8,-230 96,-230 96,-130 8,-130"/> +<polyline fill="none" stroke="#000000" points="8,-210 96,-210 "/> +<text text-anchor="start" x="45.7759" y="-215.8" font-family="Times,serif" font-size="14.00" fill="#000000">s1</text> +<polygon fill="none" stroke="#000000" points="8,-190 8,-210 60,-210 60,-190 8,-190"/> +<text text-anchor="start" x="18.8413" y="-195.8" font-family="Times,serif" font-size="14.00" fill="#000000">name</text> +<polygon fill="none" stroke="#000000" points="60,-190 60,-210 96,-210 96,-190 60,-190"/> +<text text-anchor="start" x="62.8413" y="-195.8" font-family="Times,serif" font-size="14.00" fill="#000000">value</text> +<polygon fill="none" stroke="#000000" points="8,-170 8,-190 60,-190 60,-170 8,-170"/> +<text text-anchor="start" x="26.2241" y="-175.8" font-family="Times,serif" font-size="14.00" fill="#000000">ptr</text> +<polygon fill="none" stroke="#000000" points="60,-170 60,-190 96,-190 96,-170 60,-170"/> +<polygon fill="none" stroke="#000000" points="8,-150 8,-170 60,-170 60,-150 8,-150"/> +<text text-anchor="start" x="25.4482" y="-155.8" font-family="Times,serif" font-size="14.00" fill="#000000">len</text> +<polygon fill="none" stroke="#000000" points="60,-150 60,-170 96,-170 96,-150 60,-150"/> +<text text-anchor="start" x="74.5" y="-155.8" font-family="Times,serif" font-size="14.00" fill="#000000">5</text> +<polygon fill="none" stroke="#000000" points="8,-130 8,-150 60,-150 60,-130 8,-130"/> +<text text-anchor="start" x="10.6826" y="-135.8" font-family="Times,serif" font-size="14.00" fill="#000000">capacity</text> +<polygon fill="none" stroke="#000000" points="60,-130 60,-150 96,-150 96,-130 60,-130"/> +<text text-anchor="start" x="74.5" y="-135.8" font-family="Times,serif" font-size="14.00" fill="#000000">5</text> +</g> +<!-- table1 --> +<g id="node3" class="node"> +<title>table1</title> +<polygon fill="none" stroke="#000000" points="148.5,-127 148.5,-147 185.5,-147 185.5,-127 148.5,-127"/> +<text text-anchor="start" x="151.4482" y="-132.8" font-family="Times,serif" font-size="14.00" fill="#000000">index</text> +<polygon fill="none" stroke="#000000" points="185.5,-127 185.5,-147 221.5,-147 221.5,-127 185.5,-127"/> +<text text-anchor="start" x="188.3413" y="-132.8" font-family="Times,serif" font-size="14.00" fill="#000000">value</text> +<polygon fill="none" stroke="#000000" points="148.5,-107 148.5,-127 185.5,-127 185.5,-107 148.5,-107"/> +<text text-anchor="start" x="163.5" y="-112.8" font-family="Times,serif" font-size="14.00" fill="#000000">0</text> +<polygon fill="none" stroke="#000000" points="185.5,-107 185.5,-127 221.5,-127 221.5,-107 185.5,-107"/> +<text text-anchor="start" x="200" y="-112.8" font-family="Times,serif" font-size="14.00" fill="#000000">h</text> +<polygon fill="none" stroke="#000000" points="148.5,-87 148.5,-107 185.5,-107 185.5,-87 148.5,-87"/> +<text text-anchor="start" x="163.5" y="-92.8" font-family="Times,serif" font-size="14.00" fill="#000000">1</text> +<polygon fill="none" stroke="#000000" points="185.5,-87 185.5,-107 221.5,-107 221.5,-87 185.5,-87"/> +<text text-anchor="start" x="200.3931" y="-92.8" font-family="Times,serif" font-size="14.00" fill="#000000">e</text> +<polygon fill="none" stroke="#000000" points="148.5,-67 148.5,-87 185.5,-87 185.5,-67 148.5,-67"/> +<text text-anchor="start" x="163.5" y="-72.8" font-family="Times,serif" font-size="14.00" fill="#000000">2</text> +<polygon fill="none" stroke="#000000" points="185.5,-67 185.5,-87 221.5,-87 221.5,-67 185.5,-67"/> +<text text-anchor="start" x="201.5552" y="-72.8" font-family="Times,serif" font-size="14.00" fill="#000000">l</text> +<polygon fill="none" stroke="#000000" points="148.5,-47 148.5,-67 185.5,-67 185.5,-47 148.5,-47"/> +<text text-anchor="start" x="163.5" y="-52.8" font-family="Times,serif" font-size="14.00" fill="#000000">3</text> +<polygon fill="none" stroke="#000000" points="185.5,-47 185.5,-67 221.5,-67 221.5,-47 185.5,-47"/> +<text text-anchor="start" x="201.5552" y="-52.8" font-family="Times,serif" font-size="14.00" fill="#000000">l</text> +<polygon fill="none" stroke="#000000" points="148.5,-27 148.5,-47 185.5,-47 185.5,-27 148.5,-27"/> +<text text-anchor="start" x="163.5" y="-32.8" font-family="Times,serif" font-size="14.00" fill="#000000">4</text> +<polygon fill="none" stroke="#000000" points="185.5,-27 185.5,-47 221.5,-47 221.5,-27 185.5,-27"/> +<text text-anchor="start" x="200" y="-32.8" font-family="Times,serif" font-size="14.00" fill="#000000">o</text> +</g> +<!-- table0->table1 --> +<g id="edge1" class="edge"> +<title>table0:c->table1:pointee</title> +<path fill="none" stroke="#000000" d="M78,-180C78,-180 101.9982,-126.912 138.4405,-118.2023"/> +<polygon fill="#000000" stroke="#000000" points="138.986,-121.6621 148.5,-117 138.1553,-114.7115 138.986,-121.6621"/> +</g> +<!-- table3 --> +<g id="node2" class="node"> +<title>table3</title> +<polyline fill="none" stroke="#000000" points="8,-84 96,-84 "/> +<text text-anchor="start" x="45.7759" y="-89.8" font-family="Times,serif" font-size="14.00" fill="#000000">s2</text> +<polygon fill="none" stroke="#000000" points="8,-64 8,-84 60,-84 60,-64 8,-64"/> +<text text-anchor="start" x="18.8413" y="-69.8" font-family="Times,serif" font-size="14.00" fill="#000000">name</text> +<polygon fill="none" stroke="#000000" points="60,-64 60,-84 96,-84 96,-64 60,-64"/> +<text text-anchor="start" x="62.8413" y="-69.8" font-family="Times,serif" font-size="14.00" fill="#000000">value</text> +<polygon fill="none" stroke="#000000" points="8,-44 8,-64 60,-64 60,-44 8,-44"/> +<text text-anchor="start" x="26.2241" y="-49.8" font-family="Times,serif" font-size="14.00" fill="#000000">ptr</text> +<polygon fill="none" stroke="#000000" points="60,-44 60,-64 96,-64 96,-44 60,-44"/> +<polygon fill="none" stroke="#000000" points="8,-24 8,-44 60,-44 60,-24 8,-24"/> +<text text-anchor="start" x="25.4482" y="-29.8" font-family="Times,serif" font-size="14.00" fill="#000000">len</text> +<polygon fill="none" stroke="#000000" points="60,-24 60,-44 96,-44 96,-24 60,-24"/> +<text text-anchor="start" x="74.5" y="-29.8" font-family="Times,serif" font-size="14.00" fill="#000000">5</text> +<polygon fill="none" stroke="#000000" points="8,-4 8,-24 60,-24 60,-4 8,-4"/> +<text text-anchor="start" x="10.6826" y="-9.8" font-family="Times,serif" font-size="14.00" fill="#000000">capacity</text> +<polygon fill="none" stroke="#000000" points="60,-4 60,-24 96,-24 96,-4 60,-4"/> +<text text-anchor="start" x="74.5" y="-9.8" font-family="Times,serif" font-size="14.00" fill="#000000">5</text> +</g> +<!-- table3->table1 --> +<g id="edge2" class="edge"> +<title>table3:c->table1:pointee</title> +<path fill="none" stroke="#000000" d="M78,-54C78,-54 101.9982,-107.088 138.4405,-115.7977"/> +<polygon fill="#000000" stroke="#000000" points="138.1553,-119.2885 148.5,-117 138.986,-112.3379 138.1553,-119.2885"/> +</g> +</g> +</svg> diff --git a/src/doc/book/second-edition/src/img/trpl04-05.svg b/src/doc/book/second-edition/src/img/trpl04-05.svg new file mode 100644 index 000000000..b4bf2ebee --- /dev/null +++ b/src/doc/book/second-edition/src/img/trpl04-05.svg @@ -0,0 +1,87 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.40.1 (20161225.0304) + --> +<!-- Title: %3 Pages: 1 --> +<svg + viewBox="0.00 0.00 1500.00 650.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="graph0" class="graph" transform="scale(4.1667 4.1667) rotate(0) translate(4 152)"> +<title>%3</title> +<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-152 357,-152 357,4 -4,4"/> +<!-- table0 --> +<g id="node1" class="node"> +<title>table0</title> +<polyline fill="none" stroke="#000000" points="8,-124 80,-124 "/> +<text text-anchor="start" x="41.2759" y="-129.8" font-family="Times,serif" font-size="14.00" fill="#000000">s</text> +<polygon fill="none" stroke="#000000" points="8,-104 8,-124 44,-124 44,-104 8,-104"/> +<text text-anchor="start" x="10.8413" y="-109.8" font-family="Times,serif" font-size="14.00" fill="#000000">name</text> +<polygon fill="none" stroke="#000000" points="44,-104 44,-124 80,-124 80,-104 44,-104"/> +<text text-anchor="start" x="46.8413" y="-109.8" font-family="Times,serif" font-size="14.00" fill="#000000">value</text> +<polygon fill="none" stroke="#000000" points="8,-84 8,-104 44,-104 44,-84 8,-84"/> +<text text-anchor="start" x="18.2241" y="-89.8" font-family="Times,serif" font-size="14.00" fill="#000000">ptr</text> +<polygon fill="none" stroke="#000000" points="44,-84 44,-104 80,-104 80,-84 44,-84"/> +</g> +<!-- table1 --> +<g id="node2" class="node"> +<title>table1</title> +<polyline fill="none" stroke="#000000" points="132,-124 220,-124 "/> +<text text-anchor="start" x="169.7759" y="-129.8" font-family="Times,serif" font-size="14.00" fill="#000000">s1</text> +<polygon fill="none" stroke="#000000" points="132,-104 132,-124 184,-124 184,-104 132,-104"/> +<text text-anchor="start" x="142.8413" y="-109.8" font-family="Times,serif" font-size="14.00" fill="#000000">name</text> +<polygon fill="none" stroke="#000000" points="184,-104 184,-124 220,-124 220,-104 184,-104"/> +<text text-anchor="start" x="186.8413" y="-109.8" font-family="Times,serif" font-size="14.00" fill="#000000">value</text> +<polygon fill="none" stroke="#000000" points="132,-84 132,-104 184,-104 184,-84 132,-84"/> +<text text-anchor="start" x="150.2241" y="-89.8" font-family="Times,serif" font-size="14.00" fill="#000000">ptr</text> +<polygon fill="none" stroke="#000000" points="184,-84 184,-104 220,-104 220,-84 184,-84"/> +<polygon fill="none" stroke="#000000" points="132,-64 132,-84 184,-84 184,-64 132,-64"/> +<text text-anchor="start" x="149.4482" y="-69.8" font-family="Times,serif" font-size="14.00" fill="#000000">len</text> +<polygon fill="none" stroke="#000000" points="184,-64 184,-84 220,-84 220,-64 184,-64"/> +<text text-anchor="start" x="198.5" y="-69.8" font-family="Times,serif" font-size="14.00" fill="#000000">5</text> +<polygon fill="none" stroke="#000000" points="132,-44 132,-64 184,-64 184,-44 132,-44"/> +<text text-anchor="start" x="134.6826" y="-49.8" font-family="Times,serif" font-size="14.00" fill="#000000">capacity</text> +<polygon fill="none" stroke="#000000" points="184,-44 184,-64 220,-64 220,-44 184,-44"/> +<text text-anchor="start" x="198.5" y="-49.8" font-family="Times,serif" font-size="14.00" fill="#000000">5</text> +</g> +<!-- table0->table1 --> +<g id="edge2" class="edge"> +<title>table0:c->table1:borrowee</title> +<path fill="none" stroke="#000000" d="M62,-94C62,-94 93.1184,-94 121.9514,-94"/> +<polygon fill="#000000" stroke="#000000" points="122,-97.5001 132,-94 122,-90.5001 122,-97.5001"/> +</g> +<!-- table2 --> +<g id="node3" class="node"> +<title>table2</title> +<polygon fill="none" stroke="#000000" points="272.5,-104 272.5,-124 309.5,-124 309.5,-104 272.5,-104"/> +<text text-anchor="start" x="275.4482" y="-109.8" font-family="Times,serif" font-size="14.00" fill="#000000">index</text> +<polygon fill="none" stroke="#000000" points="309.5,-104 309.5,-124 345.5,-124 345.5,-104 309.5,-104"/> +<text text-anchor="start" x="312.3413" y="-109.8" font-family="Times,serif" font-size="14.00" fill="#000000">value</text> +<polygon fill="none" stroke="#000000" points="272.5,-84 272.5,-104 309.5,-104 309.5,-84 272.5,-84"/> +<text text-anchor="start" x="287.5" y="-89.8" font-family="Times,serif" font-size="14.00" fill="#000000">0</text> +<polygon fill="none" stroke="#000000" points="309.5,-84 309.5,-104 345.5,-104 345.5,-84 309.5,-84"/> +<text text-anchor="start" x="324" y="-89.8" font-family="Times,serif" font-size="14.00" fill="#000000">h</text> +<polygon fill="none" stroke="#000000" points="272.5,-64 272.5,-84 309.5,-84 309.5,-64 272.5,-64"/> +<text text-anchor="start" x="287.5" y="-69.8" font-family="Times,serif" font-size="14.00" fill="#000000">1</text> +<polygon fill="none" stroke="#000000" points="309.5,-64 309.5,-84 345.5,-84 345.5,-64 309.5,-64"/> +<text text-anchor="start" x="324.3931" y="-69.8" font-family="Times,serif" font-size="14.00" fill="#000000">e</text> +<polygon fill="none" stroke="#000000" points="272.5,-44 272.5,-64 309.5,-64 309.5,-44 272.5,-44"/> +<text text-anchor="start" x="287.5" y="-49.8" font-family="Times,serif" font-size="14.00" fill="#000000">2</text> +<polygon fill="none" stroke="#000000" points="309.5,-44 309.5,-64 345.5,-64 345.5,-44 309.5,-44"/> +<text text-anchor="start" x="325.5552" y="-49.8" font-family="Times,serif" font-size="14.00" fill="#000000">l</text> +<polygon fill="none" stroke="#000000" points="272.5,-24 272.5,-44 309.5,-44 309.5,-24 272.5,-24"/> +<text text-anchor="start" x="287.5" y="-29.8" font-family="Times,serif" font-size="14.00" fill="#000000">3</text> +<polygon fill="none" stroke="#000000" points="309.5,-24 309.5,-44 345.5,-44 345.5,-24 309.5,-24"/> +<text text-anchor="start" x="325.5552" y="-29.8" font-family="Times,serif" font-size="14.00" fill="#000000">l</text> +<polygon fill="none" stroke="#000000" points="272.5,-4 272.5,-24 309.5,-24 309.5,-4 272.5,-4"/> +<text text-anchor="start" x="287.5" y="-9.8" font-family="Times,serif" font-size="14.00" fill="#000000">4</text> +<polygon fill="none" stroke="#000000" points="309.5,-4 309.5,-24 345.5,-24 345.5,-4 309.5,-4"/> +<text text-anchor="start" x="324" y="-9.8" font-family="Times,serif" font-size="14.00" fill="#000000">o</text> +</g> +<!-- table1->table2 --> +<g id="edge1" class="edge"> +<title>table1:c->table2:pointee</title> +<path fill="none" stroke="#000000" d="M202,-94C202,-94 233.3406,-94 262.3797,-94"/> +<polygon fill="#000000" stroke="#000000" points="262.5,-97.5001 272.5,-94 262.5,-90.5001 262.5,-97.5001"/> +</g> +</g> +</svg> diff --git a/src/doc/book/second-edition/src/img/trpl04-06.svg b/src/doc/book/second-edition/src/img/trpl04-06.svg new file mode 100644 index 000000000..e64415fe4 --- /dev/null +++ b/src/doc/book/second-edition/src/img/trpl04-06.svg @@ -0,0 +1,115 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.40.1 (20161225.0304) + --> +<!-- Title: %3 Pages: 1 --> +<svg + viewBox="0.00 0.00 1000.00 1279.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="graph0" class="graph" transform="scale(4.1667 4.1667) rotate(0) translate(4 275)"> +<title>%3</title> +<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-275 233,-275 233,4 -4,4"/> +<!-- table0 --> +<g id="node1" class="node"> +<title>table0</title> +<polyline fill="none" stroke="#000000" points="16,-121 88,-121 "/> +<text text-anchor="start" x="35.6689" y="-126.8" font-family="Times,serif" font-size="14.00" fill="#000000">world</text> +<polygon fill="none" stroke="#000000" points="16,-101 16,-121 52,-121 52,-101 16,-101"/> +<text text-anchor="start" x="18.8413" y="-106.8" font-family="Times,serif" font-size="14.00" fill="#000000">name</text> +<polygon fill="none" stroke="#000000" points="52,-101 52,-121 88,-121 88,-101 52,-101"/> +<text text-anchor="start" x="54.8413" y="-106.8" font-family="Times,serif" font-size="14.00" fill="#000000">value</text> +<polygon fill="none" stroke="#000000" points="16,-81 16,-101 52,-101 52,-81 16,-81"/> +<text text-anchor="start" x="26.2241" y="-86.8" font-family="Times,serif" font-size="14.00" fill="#000000">ptr</text> +<polygon fill="none" stroke="#000000" points="52,-81 52,-101 88,-101 88,-81 52,-81"/> +<polygon fill="none" stroke="#000000" points="16,-61 16,-81 52,-81 52,-61 16,-61"/> +<text text-anchor="start" x="25.4482" y="-66.8" font-family="Times,serif" font-size="14.00" fill="#000000">len</text> +<polygon fill="none" stroke="#000000" points="52,-61 52,-81 88,-81 88,-61 52,-61"/> +<text text-anchor="start" x="66.5" y="-66.8" font-family="Times,serif" font-size="14.00" fill="#000000">5</text> +</g> +<!-- table4 --> +<g id="node3" class="node"> +<title>table4</title> +<polygon fill="none" stroke="#000000" points="148.5,-224 148.5,-244 185.5,-244 185.5,-224 148.5,-224"/> +<text text-anchor="start" x="151.4482" y="-229.8" font-family="Times,serif" font-size="14.00" fill="#000000">index</text> +<polygon fill="none" stroke="#000000" points="185.5,-224 185.5,-244 221.5,-244 221.5,-224 185.5,-224"/> +<text text-anchor="start" x="188.3413" y="-229.8" font-family="Times,serif" font-size="14.00" fill="#000000">value</text> +<polygon fill="none" stroke="#000000" points="148.5,-204 148.5,-224 185.5,-224 185.5,-204 148.5,-204"/> +<text text-anchor="start" x="163.5" y="-209.8" font-family="Times,serif" font-size="14.00" fill="#000000">0</text> +<polygon fill="none" stroke="#000000" points="185.5,-204 185.5,-224 221.5,-224 221.5,-204 185.5,-204"/> +<text text-anchor="start" x="200" y="-209.8" font-family="Times,serif" font-size="14.00" fill="#000000">h</text> +<polygon fill="none" stroke="#000000" points="148.5,-184 148.5,-204 185.5,-204 185.5,-184 148.5,-184"/> +<text text-anchor="start" x="163.5" y="-189.8" font-family="Times,serif" font-size="14.00" fill="#000000">1</text> +<polygon fill="none" stroke="#000000" points="185.5,-184 185.5,-204 221.5,-204 221.5,-184 185.5,-184"/> +<text text-anchor="start" x="200.3931" y="-189.8" font-family="Times,serif" font-size="14.00" fill="#000000">e</text> +<polygon fill="none" stroke="#000000" points="148.5,-164 148.5,-184 185.5,-184 185.5,-164 148.5,-164"/> +<text text-anchor="start" x="163.5" y="-169.8" font-family="Times,serif" font-size="14.00" fill="#000000">2</text> +<polygon fill="none" stroke="#000000" points="185.5,-164 185.5,-184 221.5,-184 221.5,-164 185.5,-164"/> +<text text-anchor="start" x="201.5552" y="-169.8" font-family="Times,serif" font-size="14.00" fill="#000000">l</text> +<polygon fill="none" stroke="#000000" points="148.5,-144 148.5,-164 185.5,-164 185.5,-144 148.5,-144"/> +<text text-anchor="start" x="163.5" y="-149.8" font-family="Times,serif" font-size="14.00" fill="#000000">3</text> +<polygon fill="none" stroke="#000000" points="185.5,-144 185.5,-164 221.5,-164 221.5,-144 185.5,-144"/> +<text text-anchor="start" x="201.5552" y="-149.8" font-family="Times,serif" font-size="14.00" fill="#000000">l</text> +<polygon fill="none" stroke="#000000" points="148.5,-124 148.5,-144 185.5,-144 185.5,-124 148.5,-124"/> +<text text-anchor="start" x="163.5" y="-129.8" font-family="Times,serif" font-size="14.00" fill="#000000">4</text> +<polygon fill="none" stroke="#000000" points="185.5,-124 185.5,-144 221.5,-144 221.5,-124 185.5,-124"/> +<text text-anchor="start" x="200" y="-129.8" font-family="Times,serif" font-size="14.00" fill="#000000">o</text> +<polygon fill="none" stroke="#000000" points="148.5,-104 148.5,-124 185.5,-124 185.5,-104 148.5,-104"/> +<text text-anchor="start" x="163.5" y="-109.8" font-family="Times,serif" font-size="14.00" fill="#000000">5</text> +<polygon fill="none" stroke="#000000" points="185.5,-104 185.5,-124 221.5,-124 221.5,-104 185.5,-104"/> +<text text-anchor="start" x="201.75" y="-109.8" font-family="Times,serif" font-size="14.00" fill="#000000"> </text> +<polygon fill="none" stroke="#000000" points="148.5,-84 148.5,-104 185.5,-104 185.5,-84 148.5,-84"/> +<text text-anchor="start" x="163.5" y="-89.8" font-family="Times,serif" font-size="14.00" fill="#000000">6</text> +<polygon fill="none" stroke="#000000" points="185.5,-84 185.5,-104 221.5,-104 221.5,-84 185.5,-84"/> +<text text-anchor="start" x="198.4448" y="-89.8" font-family="Times,serif" font-size="14.00" fill="#000000">w</text> +<polygon fill="none" stroke="#000000" points="148.5,-64 148.5,-84 185.5,-84 185.5,-64 148.5,-64"/> +<text text-anchor="start" x="163.5" y="-69.8" font-family="Times,serif" font-size="14.00" fill="#000000">7</text> +<polygon fill="none" stroke="#000000" points="185.5,-64 185.5,-84 221.5,-84 221.5,-64 185.5,-64"/> +<text text-anchor="start" x="200" y="-69.8" font-family="Times,serif" font-size="14.00" fill="#000000">o</text> +<polygon fill="none" stroke="#000000" points="148.5,-44 148.5,-64 185.5,-64 185.5,-44 148.5,-44"/> +<text text-anchor="start" x="163.5" y="-49.8" font-family="Times,serif" font-size="14.00" fill="#000000">8</text> +<polygon fill="none" stroke="#000000" points="185.5,-44 185.5,-64 221.5,-64 221.5,-44 185.5,-44"/> +<text text-anchor="start" x="201.1689" y="-49.8" font-family="Times,serif" font-size="14.00" fill="#000000">r</text> +<polygon fill="none" stroke="#000000" points="148.5,-24 148.5,-44 185.5,-44 185.5,-24 148.5,-24"/> +<text text-anchor="start" x="163.5" y="-29.8" font-family="Times,serif" font-size="14.00" fill="#000000">9</text> +<polygon fill="none" stroke="#000000" points="185.5,-24 185.5,-44 221.5,-44 221.5,-24 185.5,-24"/> +<text text-anchor="start" x="201.5552" y="-29.8" font-family="Times,serif" font-size="14.00" fill="#000000">l</text> +<polygon fill="none" stroke="#000000" points="148.5,-4 148.5,-24 185.5,-24 185.5,-4 148.5,-4"/> +<text text-anchor="start" x="160" y="-9.8" font-family="Times,serif" font-size="14.00" fill="#000000">10</text> +<polygon fill="none" stroke="#000000" points="185.5,-4 185.5,-24 221.5,-24 221.5,-4 185.5,-4"/> +<text text-anchor="start" x="200" y="-9.8" font-family="Times,serif" font-size="14.00" fill="#000000">d</text> +</g> +<!-- table0->table4 --> +<g id="edge1" class="edge"> +<title>table0:c->table4:pointee2</title> +<path fill="none" stroke="#000000" d="M70,-91C70,-91 105.7964,-93.4639 138.4948,-93.9258"/> +<polygon fill="#000000" stroke="#000000" points="138.4743,-97.4257 148.5,-94 138.5263,-90.4259 138.4743,-97.4257"/> +</g> +<!-- table3 --> +<g id="node2" class="node"> +<title>table3</title> +<polyline fill="none" stroke="#000000" points="8,-247 96,-247 "/> +<text text-anchor="start" x="49.2759" y="-252.8" font-family="Times,serif" font-size="14.00" fill="#000000">s</text> +<polygon fill="none" stroke="#000000" points="8,-227 8,-247 60,-247 60,-227 8,-227"/> +<text text-anchor="start" x="18.8413" y="-232.8" font-family="Times,serif" font-size="14.00" fill="#000000">name</text> +<polygon fill="none" stroke="#000000" points="60,-227 60,-247 96,-247 96,-227 60,-227"/> +<text text-anchor="start" x="62.8413" y="-232.8" font-family="Times,serif" font-size="14.00" fill="#000000">value</text> +<polygon fill="none" stroke="#000000" points="8,-207 8,-227 60,-227 60,-207 8,-207"/> +<text text-anchor="start" x="26.2241" y="-212.8" font-family="Times,serif" font-size="14.00" fill="#000000">ptr</text> +<polygon fill="none" stroke="#000000" points="60,-207 60,-227 96,-227 96,-207 60,-207"/> +<polygon fill="none" stroke="#000000" points="8,-187 8,-207 60,-207 60,-187 8,-187"/> +<text text-anchor="start" x="25.4482" y="-192.8" font-family="Times,serif" font-size="14.00" fill="#000000">len</text> +<polygon fill="none" stroke="#000000" points="60,-187 60,-207 96,-207 96,-187 60,-187"/> +<text text-anchor="start" x="71.2563" y="-192.8" font-family="Times,serif" font-size="14.00" fill="#000000">11</text> +<polygon fill="none" stroke="#000000" points="8,-167 8,-187 60,-187 60,-167 8,-167"/> +<text text-anchor="start" x="10.6826" y="-172.8" font-family="Times,serif" font-size="14.00" fill="#000000">capacity</text> +<polygon fill="none" stroke="#000000" points="60,-167 60,-187 96,-187 96,-167 60,-167"/> +<text text-anchor="start" x="71.2563" y="-172.8" font-family="Times,serif" font-size="14.00" fill="#000000">11</text> +</g> +<!-- table3->table4 --> +<g id="edge2" class="edge"> +<title>table3:c->table4:pointee</title> +<path fill="none" stroke="#000000" d="M78,-217C78,-217 109.3179,-214.5994 138.3725,-214.0931"/> +<polygon fill="#000000" stroke="#000000" points="138.5326,-217.5918 148.5,-214 138.4682,-210.5921 138.5326,-217.5918"/> +</g> +</g> +</svg> diff --git a/src/doc/book/second-edition/src/img/trpl14-01.png b/src/doc/book/second-edition/src/img/trpl14-01.png Binary files differnew file mode 100644 index 000000000..5fc59898c --- /dev/null +++ b/src/doc/book/second-edition/src/img/trpl14-01.png diff --git a/src/doc/book/second-edition/src/img/trpl14-02.png b/src/doc/book/second-edition/src/img/trpl14-02.png Binary files differnew file mode 100644 index 000000000..78e7e7ba7 --- /dev/null +++ b/src/doc/book/second-edition/src/img/trpl14-02.png diff --git a/src/doc/book/second-edition/src/img/trpl14-03.png b/src/doc/book/second-edition/src/img/trpl14-03.png Binary files differnew file mode 100644 index 000000000..ef8414507 --- /dev/null +++ b/src/doc/book/second-edition/src/img/trpl14-03.png diff --git a/src/doc/book/second-edition/src/img/trpl14-04.png b/src/doc/book/second-edition/src/img/trpl14-04.png Binary files differnew file mode 100644 index 000000000..d0ed2ca18 --- /dev/null +++ b/src/doc/book/second-edition/src/img/trpl14-04.png diff --git a/src/doc/book/second-edition/src/img/trpl15-01.svg b/src/doc/book/second-edition/src/img/trpl15-01.svg new file mode 100644 index 000000000..bbeef968a --- /dev/null +++ b/src/doc/book/second-edition/src/img/trpl15-01.svg @@ -0,0 +1,43 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.40.1 (20161225.0304) + --> +<!-- Title: %3 Pages: 1 --> +<svg + viewBox="0.00 0.00 1000.00 700.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="graph0" class="graph" transform="scale(4.1667 4.1667) rotate(0) translate(4 156)"> +<title>%3</title> +<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-156 174,-156 174,4 -4,4"/> +<!-- table0 --> +<g id="node1" class="node"> +<title>table0</title> +<polyline fill="none" stroke="#000000" points="8,-128 162,-128 "/> +<text text-anchor="start" x="70.6069" y="-133.8" font-family="Times,serif" font-size="14.00" fill="#000000">Cons</text> +<polygon fill="none" stroke="#000000" points="8,-4 8,-128 31,-128 31,-4 8,-4"/> +<text text-anchor="start" x="10.5552" y="-61.8" font-family="Times,serif" font-size="14.00" fill="#000000">i32</text> +<polygon fill="none" stroke="#000000" points="31,-4 31,-128 162,-128 162,-4 31,-4"/> +<polyline fill="none" stroke="#000000" points="34,-105 159,-105 "/> +<text text-anchor="start" x="82.1069" y="-110.8" font-family="Times,serif" font-size="14.00" fill="#000000">Cons</text> +<polygon fill="none" stroke="#000000" points="34,-7 34,-105 57,-105 57,-7 34,-7"/> +<text text-anchor="start" x="36.5552" y="-51.8" font-family="Times,serif" font-size="14.00" fill="#000000">i32</text> +<polygon fill="none" stroke="#000000" points="57,-7 57,-105 159,-105 159,-7 57,-7"/> +<polyline fill="none" stroke="#000000" points="60,-82 156,-82 "/> +<text text-anchor="start" x="93.6069" y="-87.8" font-family="Times,serif" font-size="14.00" fill="#000000">Cons</text> +<polygon fill="none" stroke="#000000" points="60,-10 60,-82 83,-82 83,-10 60,-10"/> +<text text-anchor="start" x="62.5552" y="-41.8" font-family="Times,serif" font-size="14.00" fill="#000000">i32</text> +<polygon fill="none" stroke="#000000" points="83,-10 83,-82 156,-82 156,-10 83,-10"/> +<polyline fill="none" stroke="#000000" points="86,-59 153,-59 "/> +<text text-anchor="start" x="105.1069" y="-64.8" font-family="Times,serif" font-size="14.00" fill="#000000">Cons</text> +<polygon fill="none" stroke="#000000" points="86,-13 86,-59 109,-59 109,-13 86,-13"/> +<text text-anchor="start" x="88.5552" y="-31.8" font-family="Times,serif" font-size="14.00" fill="#000000">i32</text> +<polygon fill="none" stroke="#000000" points="109,-13 109,-59 153,-59 153,-13 109,-13"/> +<polyline fill="none" stroke="#000000" points="112,-36 150,-36 "/> +<text text-anchor="start" x="116.6069" y="-41.8" font-family="Times,serif" font-size="14.00" fill="#000000">Cons</text> +<polygon fill="none" stroke="#000000" points="112,-16 112,-36 135,-36 135,-16 112,-16"/> +<text text-anchor="start" x="114.5552" y="-21.8" font-family="Times,serif" font-size="14.00" fill="#000000">i32</text> +<polygon fill="none" stroke="#000000" points="135,-16 135,-36 150,-36 150,-16 135,-16"/> +<text text-anchor="start" x="137.5098" y="-21.8" font-family="Times,serif" font-size="14.00" fill="#000000">∞</text> +</g> +</g> +</svg> diff --git a/src/doc/book/second-edition/src/img/trpl15-02.svg b/src/doc/book/second-edition/src/img/trpl15-02.svg new file mode 100644 index 000000000..4454df8c3 --- /dev/null +++ b/src/doc/book/second-edition/src/img/trpl15-02.svg @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.40.1 (20161225.0304) + --> +<!-- Title: %3 Pages: 1 --> +<svg width="250pt" + viewBox="0.00 0.00 363.00 342.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="graph0" class="graph" transform="scale(4.1667 4.1667) rotate(0) translate(4 78)"> +<title>%3</title> +<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-78 83,-78 83,4 -4,4"/> +<!-- table0 --> +<g id="node1" class="node"> +<title>table0</title> +<polyline fill="none" stroke="#000000" points="8.5,-50 71.5,-50 "/> +<text text-anchor="start" x="25.6069" y="-55.8" font-family="Times,serif" font-size="14.00" fill="#000000">Cons</text> +<polygon fill="none" stroke="#000000" points="8.5,-4 8.5,-50 31.5,-50 31.5,-4 8.5,-4"/> +<text text-anchor="start" x="11.0552" y="-22.8" font-family="Times,serif" font-size="14.00" fill="#000000">i32</text> +<polygon fill="none" stroke="#000000" points="31.5,-4 31.5,-50 71.5,-50 71.5,-4 31.5,-4"/> +<polyline fill="none" stroke="#000000" points="34.5,-27 68.5,-27 "/> +<text text-anchor="start" x="39.8311" y="-32.8" font-family="Times,serif" font-size="14.00" fill="#000000">Box</text> +<polygon fill="none" stroke="#000000" points="34.5,-7 34.5,-27 68.5,-27 68.5,-7 34.5,-7"/> +<text text-anchor="start" x="37.1172" y="-12.8" font-family="Times,serif" font-size="14.00" fill="#000000">usize</text> +</g> +</g> +</svg> diff --git a/src/doc/book/second-edition/src/img/trpl15-03.svg b/src/doc/book/second-edition/src/img/trpl15-03.svg new file mode 100644 index 000000000..dbc3b5cdb --- /dev/null +++ b/src/doc/book/second-edition/src/img/trpl15-03.svg @@ -0,0 +1,109 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.40.1 (20161225.0304) + --> +<!-- Title: %3 Pages: 1 --> + <svg width="750pt" + viewBox="0.00 0.00 2500 700" xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="graph0" class="graph" transform="scale(4.1667 4.1667) rotate(0) translate(4 148)"> +<title>%3</title> +<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-148 418,-148 418,4 -4,4"/> +<!-- table4 --> +<g id="node1" class="node"> +<title>table4</title> +<text text-anchor="start" x="21" y="-121.8" font-family="Times,serif" font-size="14.00" fill="#000000">b</text> +</g> +<!-- table5 --> +<g id="node2" class="node"> +<title>table5</title> +<polygon fill="none" stroke="#000000" points="104,-116 104,-136 117,-136 117,-116 104,-116"/> +<text text-anchor="start" x="107" y="-121.8" font-family="Times,serif" font-size="14.00" fill="#000000">3</text> +<polygon fill="none" stroke="#000000" points="117,-116 117,-136 130,-136 130,-116 117,-116"/> +<text text-anchor="start" x="120" y="-121.8" font-family="Times,serif" font-size="14.00" fill="#000000">  </text> +</g> +<!-- table4->table5 --> +<g id="edge4" class="edge"> +<title>table4:c->table5:pte4</title> +<path fill="none" stroke="#000000" d="M34,-126C34,-126 65.1184,-126 93.9514,-126"/> +<polygon fill="#000000" stroke="#000000" points="94,-129.5001 104,-126 94,-122.5001 94,-129.5001"/> +</g> +<!-- table1 --> +<g id="node4" class="node"> +<title>table1</title> +<polygon fill="none" stroke="#000000" points="194,-62 194,-82 207,-82 207,-62 194,-62"/> +<text text-anchor="start" x="197" y="-67.8" font-family="Times,serif" font-size="14.00" fill="#000000">5</text> +<polygon fill="none" stroke="#000000" points="207,-62 207,-82 220,-82 220,-62 207,-62"/> +<text text-anchor="start" x="210" y="-67.8" font-family="Times,serif" font-size="14.00" fill="#000000">  </text> +</g> +<!-- table5->table1 --> +<g id="edge5" class="edge"> +<title>table5:c->table1:pte0</title> +<path fill="none" stroke="#000000" d="M124,-126C124,-126 149.4376,-81.2672 183.6334,-73.2293"/> +<polygon fill="#000000" stroke="#000000" points="184.4818,-76.6533 194,-72 183.6574,-69.702 184.4818,-76.6533"/> +</g> +<!-- table0 --> +<g id="node3" class="node"> +<title>table0</title> +<text text-anchor="start" x="110.8931" y="-67.8" font-family="Times,serif" font-size="14.00" fill="#000000">a</text> +</g> +<!-- table0->table1 --> +<g id="edge1" class="edge"> +<title>table0:c->table1:pte0</title> +<path fill="none" stroke="#000000" d="M123,-72C123,-72 154.5629,-72 183.8079,-72"/> +<polygon fill="#000000" stroke="#000000" points="184,-75.5001 194,-72 184,-68.5001 184,-75.5001"/> +</g> +<!-- table2 --> +<g id="node5" class="node"> +<title>table2</title> +<polygon fill="none" stroke="#000000" points="281,-62 281,-82 301,-82 301,-62 281,-62"/> +<text text-anchor="start" x="284" y="-67.8" font-family="Times,serif" font-size="14.00" fill="#000000">10</text> +<polygon fill="none" stroke="#000000" points="301,-62 301,-82 314,-82 314,-62 301,-62"/> +<text text-anchor="start" x="304" y="-67.8" font-family="Times,serif" font-size="14.00" fill="#000000">  </text> +</g> +<!-- table1->table2 --> +<g id="edge2" class="edge"> +<title>table1:c->table2:pte1</title> +<path fill="none" stroke="#000000" d="M214,-72C214,-72 243.2667,-72 270.6585,-72"/> +<polygon fill="#000000" stroke="#000000" points="271,-75.5001 281,-72 271,-68.5001 271,-75.5001"/> +</g> +<!-- table3 --> +<g id="node6" class="node"> +<title>table3</title> +<polygon fill="none" stroke="#000000" points="376,-62 376,-82 399,-82 399,-62 376,-62"/> +<text text-anchor="start" x="378.5552" y="-67.8" font-family="Times,serif" font-size="14.00" fill="#000000">Nil</text> +</g> +<!-- table2->table3 --> +<g id="edge3" class="edge"> +<title>table2:c->table3:pte2</title> +<path fill="none" stroke="#000000" d="M308,-72C308,-72 341.8867,-72 365.5509,-72"/> +<polygon fill="#000000" stroke="#000000" points="365.8498,-75.5001 375.8497,-72 365.8497,-68.5001 365.8498,-75.5001"/> +</g> +<!-- table6 --> +<g id="node7" class="node"> +<title>table6</title> +<text text-anchor="start" x="20.8931" y="-13.8" font-family="Times,serif" font-size="14.00" fill="#000000">c</text> +</g> +<!-- table7 --> +<g id="node8" class="node"> +<title>table7</title> +<polygon fill="none" stroke="#000000" points="104,-8 104,-28 117,-28 117,-8 104,-8"/> +<text text-anchor="start" x="107" y="-13.8" font-family="Times,serif" font-size="14.00" fill="#000000">4</text> +<polygon fill="none" stroke="#000000" points="117,-8 117,-28 130,-28 130,-8 117,-8"/> +<text text-anchor="start" x="120" y="-13.8" font-family="Times,serif" font-size="14.00" fill="#000000">  </text> +</g> +<!-- table6->table7 --> +<g id="edge6" class="edge"> +<title>table6:c->table7:pte6</title> +<path fill="none" stroke="#000000" d="M33,-18C33,-18 64.5629,-18 93.8079,-18"/> +<polygon fill="#000000" stroke="#000000" points="94,-21.5001 104,-18 94,-14.5001 94,-21.5001"/> +</g> +<!-- table7->table1 --> +<g id="edge7" class="edge"> +<title>table7:c->table1:pte0</title> +<path fill="none" stroke="#000000" d="M124,-18C124,-18 149.4376,-62.7328 183.6334,-70.7707"/> +<polygon fill="#000000" stroke="#000000" points="183.6574,-74.298 194,-72 184.4818,-67.3467 183.6574,-74.298"/> +</g> +</g> +</svg> diff --git a/src/doc/book/second-edition/src/img/trpl15-04.svg b/src/doc/book/second-edition/src/img/trpl15-04.svg new file mode 100644 index 000000000..96ad98ca1 --- /dev/null +++ b/src/doc/book/second-edition/src/img/trpl15-04.svg @@ -0,0 +1,55 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.36.0 (20140111.2315) + --> +<!-- Title: %3 Pages: 1 --> +<svg width="633pt" height="498pt" viewBox="0.00 0.00 633.33 498.19" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="graph0" class="graph" transform="scale(4.16667 4.16667) rotate(0) translate(4 115.566)"> +<title>%3</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-115.566 148,-115.566 148,4 -4,4"/> +<!-- table0 --> +<g id="node2" class="node"><title>table0</title> +<polygon fill="none" stroke="black" points="0,-75.5656 0,-111.566 54,-111.566 54,-75.5656 0,-75.5656"/> +<text text-anchor="middle" x="27" y="-89.8656" font-family="Times,serif" font-size="14.00">a</text> +</g> +<!-- table1 --> +<g id="node4" class="node"><title>table1</title> +<polygon fill="none" stroke="black" points="90,-75.5656 90,-111.566 144,-111.566 144,-75.5656 90,-75.5656"/> +<text text-anchor="middle" x="104" y="-89.8656" font-family="Times,serif" font-size="14.00">5</text> +<polyline fill="none" stroke="black" points="118,-75.5656 118,-111.566 "/> +<text text-anchor="middle" x="131" y="-89.8656" font-family="Times,serif" font-size="14.00"> </text> +</g> +<!-- table2 --> +<g id="node3" class="node"><title>table2</title> +<polygon fill="none" stroke="black" points="90,-20.5656 90,-56.5656 144,-56.5656 144,-20.5656 90,-20.5656"/> +<text text-anchor="middle" x="117" y="-34.8656" font-family="Times,serif" font-size="14.00">b</text> +</g> +<!-- table3 --> +<g id="node1" class="node"><title>table3</title> +<polygon fill="none" stroke="black" points="0,-20.5656 0,-56.5656 54,-56.5656 54,-20.5656 0,-20.5656"/> +<text text-anchor="middle" x="16" y="-34.8656" font-family="Times,serif" font-size="14.00">10</text> +<polyline fill="none" stroke="black" points="32,-20.5656 32,-56.5656 "/> +<text text-anchor="middle" x="43" y="-34.8656" font-family="Times,serif" font-size="14.00"> </text> +</g> +<!-- table0->table1 --> +<g id="edge1" class="edge"><title>table0:ref->table1:data</title> +<path fill="none" stroke="black" d="M54,-93.5656C66,-93.5656 71.25,-93.5656 78.875,-93.5656"/> +<polygon fill="black" stroke="black" points="79,-97.0657 89,-93.5656 79,-90.0657 79,-97.0657"/> +</g> +<!-- table1->table2 --> +<g id="edge2" class="edge"><title>table1:ref->table2:data</title> +<path fill="none" stroke="black" d="M123.1403,-65.1315C127.6523,-67.3402 133,-68.812 133,-75"/> +<polygon fill="black" stroke="black" points="120.233,-67.0895 117,-57 125.8193,-62.8712 120.233,-67.0895"/> +</g> +<!-- table2->table3 --> +<g id="edge3" class="edge"><title>table2:ref->table3:data</title> +<path fill="none" stroke="black" d="M117,-20.5656C117,2.6957 43.7375,5.56532 21.2401,-10.9567"/> +<polygon fill="black" stroke="black" points="18.2098,-9.20375 16,-19.5656 24.1892,-12.8434 18.2098,-9.20375"/> +</g> +<!-- table3->table0 --> +<g id="edge4" class="edge"><title>table3:ref->table0:data</title> +<path fill="none" stroke="black" d="M33.1409,-66.8685C37.6523,-64.6598 43,-63.188 43,-57"/> +<polygon fill="black" stroke="black" points="30.233,-64.9105 27,-75 35.8193,-69.1288 30.233,-64.9105"/> +</g> +</g> +</svg> diff --git a/src/doc/book/second-edition/src/img/trpl20-01.png b/src/doc/book/second-edition/src/img/trpl20-01.png Binary files differnew file mode 100644 index 000000000..19e2cbc0a --- /dev/null +++ b/src/doc/book/second-edition/src/img/trpl20-01.png |