diff --git a/nostarch/frontmatter.md b/nostarch/frontmatter.md index ab07dc946..985f6702b 100644 --- a/nostarch/frontmatter.md +++ b/nostarch/frontmatter.md @@ -1,82 +1,4 @@ - -Unmatched: BookHalfTitle - -Unmatched: BookTitle0 - -Unmatched: BookAuthor - -Unmatched: Copyright - -Unmatched: CopyrightHead - -Unmatched: ProductionDirective0 - -Unmatched: Copyright - -Unmatched: Copyright - -Unmatched: Copyright - -Unmatched: Copyright - -Unmatched: Copyright - -Unmatched: ProductionDirective0 - -Unmatched: Copyright - -Unmatched: Copyright - -Unmatched: Copyright - -Unmatched: Copyright - -Unmatched: Copyright - -Unmatched: Copyright - -Unmatched: Copyright - -Unmatched: Copyright - -Unmatched: Copyright - -Unmatched: Copyright - -Unmatched: Copyright - -Unmatched: ProductionDirective0 - -Unmatched: Copyright - -Unmatched: Copyright - -Unmatched: ProductionDirective0 - -Unmatched: Copyright - -Unmatched: Copyright - -Unmatched: CopyrightLOC - -Unmatched: ProductionDirective0 - -Unmatched: Copyright - -Unmatched: ProductionDirective0 - -Unmatched: Copyright - -Unmatched: Copyright - -Unmatched: ProductionDirective0 - -Unmatched: Copyright - -Unmatched: Copyright - -Unmatched: ProductionDirective0 - ## About the Author +## About the Author Carol Nichols is a member of the Rust Crates.io Team and a former member of the Rust Core Team. She’s a co-founder of Integer 32, LLC, the world’s first @@ -95,22 +17,16 @@ in 2011, and in 2016 joined Mozilla to work on Rust full-time, helping to shape its direction for widespread use. These days, they are a freelance Rust trainer and advocate for safe systems programming. +## Brief Contents -Unmatched: FrontmatterTitle +## Contents in Detail -Unmatched: ProductionDirective0 +## Foreword -Unmatched: FrontmatterTitle - -Unmatched: ProductionDirective0 - -Unmatched: ProductionDirective0 - -Unmatched: FrontmatterTitle - It wasn’t always so clear, but the Rust programming language is -fundamentally about *empowerment*: no matter what kind of code you are writing -now, Rust empowers you to reach farther, to program with confidence in a wider -variety of domains than you did before. +It wasn’t always so clear, but the Rust programming language is fundamentally +about *empowerment*: no matter what kind of code you are writing now, Rust +empowers you to reach farther, to program with confidence in a wider variety of +domains than you did before. Take, for example, “systems-level” work that deals with low-level details of memory management, data representation, and concurrency. Traditionally, this @@ -147,32 +63,32 @@ general. So dive in, get ready to learn—and welcome to the Rust community! Nicholas Matsakis and Aaron Turon +## Preface -Unmatched: FrontmatterTitle - This version of the text assumes you’re using Rust 1.62.0 (released -2022-06-30) or later with `edition="2021"` in Cargo.toml of all projects to use -Rust 2021 Edition idioms. See “Installation” on page 1 for instructions on -installing or updating Rust, and see Appendix E for information on editions. +This version of the text assumes you’re using Rust 1.62.0 (released 2022-06-30) +or later with `edition="2021"` in *Cargo.toml* of all projects to use Rust 2021 +Edition idioms. See “Installation” on page 1 for instructions on installing or +updating Rust, and see Appendix E for information on editions. The 2021 Edition of the Rust language includes a number of improvements that make Rust more ergonomic and correct some inconsistencies. On top of a general update to reflect these improvements, this rendition of the book has a number of improvements to address specific feedback: - -Unmatched: ListBullet - -Unmatched: ListBullet - -Unmatched: ListBullet - Note that any code from earlier renditions of this book that compiled -will continue to compile with the relevant edition in the project’s Cargo.toml, +* Chapter 7 contains a new quick reference section on organizing your code into +multiple files with modules. +* Chapter 13 has new and improved closure examples that more clearly illustrate +captures, the `move` keyword, and the `Fn` traits. +* We fixed a number of small errors and imprecise wording throughout the book. +Thank you to the readers who reported them! +Note that any code from earlier renditions of this book that compiled will +continue to compile with the relevant edition in the project’s *Cargo.toml*, even as you update the Rust compiler version you’re using. That’s Rust’s backward compatibility guarantees at work! +## ACKNOWLEDGMENTS -Unmatched: FrontmatterTitle - We would like to thank everyone who has worked on the Rust language for +We would like to thank everyone who has worked on the Rust language for creating an amazing language worth writing a book about. We’re grateful to everyone in the Rust community for being welcoming and creating an environment worth welcoming more folks into. @@ -188,11 +104,17 @@ Carol is grateful for the opportunity to work on this book. She thanks her family for their constant love and support, especially her husband Jake Goulding and her daughter Vivian. +## Introduction -Unmatched: FrontmatterTitle +Welcome to *The Rust Programming Language,* an introductory book about Rust. +The Rust programming language helps you write faster, more reliable software. +High-level ergonomics and low-level control are often at odds in programming +language design; Rust challenges that conflict. Through balancing powerful +technical capacity and a great developer experience, Rust gives you the option +to control low-level details (such as memory usage) without all the hassle +traditionally associated with such control. -Unmatched: ChapterIntro - ## Who Rust Is For +## Who Rust Is For Rust is ideal for many people for a variety of reasons. Let’s look at a few of the most important groups. @@ -210,13 +132,14 @@ logic rather than chasing down bugs. Rust also brings contemporary developer tools to the systems programming world: - -Unmatched: ListBullet - -Unmatched: ListBullet - -Unmatched: ListBullet - By using these and other tools in the Rust ecosystem, developers can be +* Cargo, the included dependency manager and build tool, makes adding, +compiling, and managing dependencies painless and consistent across the Rust +ecosystem. +* The Rustfmt formatting tool ensures a consistent coding style across +developers. +* The Rust Language Server powers Integrated Development Environment (IDE) +integration for code completion and inline error messages. +By using these and other tools in the Rust ecosystem, developers can be productive while writing systems-level code. ### Students @@ -256,15 +179,15 @@ code be fast code as well. The Rust language hopes to support many other users as well; those mentioned here are merely some of the biggest stakeholders. Overall, Rust’s greatest ambition is to eliminate the trade-offs that programmers have accepted for -decades by providing safety and productivity, speed and ergonomics. Give Rust a -try and see if its choices work for you. +decades by providing safety *and* productivity, speed *and* ergonomics. Give +Rust a try and see if its choices work for you. ## Who This Book Is For This book assumes that you’ve written code in another programming language but doesn’t make any assumptions about which one. We’ve tried to make the material broadly accessible to those from a wide variety of programming backgrounds. We -don’t spend a lot of time talking about what programming is or how to think +don’t spend a lot of time talking about what programming *is* or how to think about it. If you’re entirely new to programming, you would be better served by reading a book that specifically provides an introduction to programming. @@ -352,9 +275,9 @@ that doesn’t compile. This book is open source. If you find an error, please don’t hesitate to file an issue or send a pull request on GitHub at -https://github.com/rust-lang/book/. Please see CONTRIBUTING.md at -https://github.com/rust-lang/book/blob/main/CONTRIBUTING.md for more details. +*https://github.com/rust-lang/book/**.* Please see *CONTRIBUTING.md* at +*https://github.com/rust-lang/book/blob/main/CONTRIBUTING.md* for more details. The source code for the examples in this book, errata, and other information -are available at https://www.nostarch.com/Rust2021/. +are available at *https://www.nostarch.com/Rust2021/*. diff --git a/tools/docx-to-md.xsl b/tools/docx-to-md.xsl index 637c7a59c..b7430c427 100644 --- a/tools/docx-to-md.xsl +++ b/tools/docx-to-md.xsl @@ -15,6 +15,13 @@ + + + + + + + @@ -27,7 +34,7 @@ - + ## @@ -63,7 +70,7 @@ - + * @@ -81,7 +88,7 @@ - + @@ -195,7 +202,7 @@ Unmatched: - +