Learn Rust in a Month of Lunches

by Daye Macleod

Programming

Book Details

Book Title

Learn Rust in a Month of Lunches

Author

Daye Macleod

Publisher

Manning

Publication Date

2024

ISBN

9781633438231

Number of Pages

569

Language

English

Format

PDF

File Size

5.7MB

Subject

Programming

Table of Contents

  • Learn Rust in a Month of Lunches
  • brief contents
  • contents
  • foreword
  • preface
  • acknowledgments
  • about this book
  • about the author
  • 1 Some basics
  • 1.1 Introducing Rust
  • 1.2 Comments
  • 1.3 Primitive types: Integers, characters, and strings
  • 1.4 Type inference
  • 1.5 Floats
  • 1.6 “Hello, World!” and printing
  • 1.7 Declaring variables and code blocks
  • 1.8 Display and Debug
  • 1.9 Smallest and largest numbers
  • 1.10 Mutability (changing)
  • 1.11 Shadowing
  • Summary
  • 2 Memory, variables, and ownership
  • 2.1 The stack, the heap, pointers, and references
  • 2.2 Strings
  • 2.3 const and static
  • 2.4 More on references
  • 2.5 Mutable references
  • 2.6 Shadowing again
  • 2.7 Giving references to functions
  • 2.8 Copy types
  • 2.9 Variables without values
  • 2.10 More about printing
  • Summary
  • 3 More complex types
  • 3.1 Collection types
  • 3.2 Control flow
  • Summary
  • 4 Building your own types
  • 4.1 A quick overview of structs and enums
  • 4.2 Destructuring
  • 4.3 References and the dot operator
  • Summary
  • 5 Generics, option, and result
  • 5.1 Generics
  • 5.2 Option and Result
  • Summary
  • 6 More collections, more error handling
  • 6.1 Other collections
  • 6.2 The ? operator
  • 6.3 When panic and unwrap are good
  • Summary
  • 7 Traits: Making different types do the same thing
  • 7.1 Traits: The basics
  • 7.2 The From trait
  • 7.3 The orphan rule
  • 7.4 Getting around the orphan rule with newtypes
  • 7.5 Taking a String and a &str in a function
  • Summary
  • 8 Iterators and closures
  • Iterators and closures
  • 8.1 Chaining methods
  • 8.2 Iterators
  • 8.3 Closures and closures inside iterators
  • Summary
  • 9 Iterators and closures again!
  • 9.1 Helpful methods for closures and iterators
  • 9.2 The dbg! macro and .inspect
  • Summary
  • 10 Lifetimes and interior mutability
  • 10.1 Types of &str
  • 10.2 Lifetime annotations
  • 10.3 Interior mutability
  • Summary
  • 11 Multiple threads and a lot more
  • 11.1 Importing and renaming inside a function
  • 11.2 The todo! macro
  • 11.3 Type aliases
  • 11.4 Cow
  • 11.5 Rc
  • 11.6 Multiple threads
  • Summary
  • 12 More on closures, generics, and threads
  • 12.1 Closures as arguments
  • 12.2 impl Trait
  • 12.3 Arc
  • 12.4 Scoped threads
  • 12.5 Channels
  • Summary
  • 13 Box and Rust documentation
  • 13.1 Reading Rust documentation
  • 13.2 Box
  • Summary
  • 14 Testing and building your code from tests
  • 14.1 Crates and modules
  • 14.2 Testing
  • 14.3 Test-driven development
  • Summary
  • 15 Default, the builder pattern, and Deref
  • 15.1 Implementing Default
  • 15.2 The builder pattern
  • 15.3 Deref and DerefMut
  • Summary
  • 16 Const, “unsafe” Rust, and external crates
  • 16.1 Const generics
  • 16.2 Const functions
  • 16.3 Mutable statics
  • 16.4 Unsafe Rust
  • 16.5 Introducing external crates
  • Summary
  • 17 Rust’s most popular crates
  • 17.1 serde
  • 17.2 Time in the standard library
  • 17.3 chrono
  • 17.4 Rayon
  • 17.5 Anyhow and thiserror
  • 17.6 Blanket trait implementations
  • 17.7 lazy_static and once_cell
  • Summary
  • 18 Rust on your computer
  • 18.1 Cargo
  • 18.2 Working with user input
  • 18.3 Using files
  • 18.4 cargo doc
  • Summary
  • 19 More crates and async Rust
  • 19.1 The reqwest crate
  • 19.2 Feature flags
  • 19.3 Async Rust
  • Summary
  • 20 A tour of the standard library
  • 20.1 Arrays
  • 20.2 char
  • 20.3 Integers
  • 20.4 Floats
  • 20.5 Associated items and associated constants
  • 20.6 bool
  • 20.7 Vec
  • 20.8 String
  • 20.9 OsString and CString
  • Summary
  • 21 Continuing the tour
  • 21.1 std::mem
  • 21.2 Setting panic hooks
  • 21.3 Viewing backtraces
  • 21.4 The standard library prelude
  • 21.5 Other macros
  • Summary
  • 22 Writing your own macros
  • 22.1 Why macros exist
  • 22.2 Writing basic macros
  • 22.3 Reading macros from the standard library
  • 22.4 Using macros to keep your code clean
  • Summary
  • 23 Unfinished projects: Projects for you to finish
  • 23.1 Setup for the last two chapters
  • 23.2 Typing tutor
  • 23.3 Wikipedia article summary searcher
  • 23.4 Terminal stopwatch and clock
  • Summary
  • 24 Unfinished projects, continued
  • 24.1 Web server word-guessing game
  • 24.2 Laser pointer
  • 24.3 Directory and file navigator
  • Summary
  • index
  • Learn Rust in a Month of Lunches -back