
A podcast for busy people who want to learn and quickly be productive with the Rust programming language.
Introduction episode for the Learning Rust For Busy People podcast.
Overview of installing Rust and using Cargo to create a new project, compile code, and run the executable that’s built. Discussion of differences and similarities in how projects are set up and managed in Rust versus in Python.
RustRover IDE: https://www.jetbrains.com/rust/
First practical code example. Use Rust to extract text from a Markdown file. Covers how to use Rust to read the contents of a text file, iterate through lines of a text file, manipulate a String by replacing text, and print the value of a variable to standard output.
Code example: version 1
Use Rust to extract text from a Markdown file, part 2. Covers concepts that include refactoring a program into a binary crate and a library crate for separation of concerns, passing command-line arguments to a program, using a vector, using the “dbg!” macro, the system of “ownership” in Rust, and what it means for a Rust program to “panic”.
Code example: version 2
Use Rust to extract text from a Markdown file, part 3. Covers concepts that include how to implement error handling by treating problems as either “unrecoverable” errors (by calling the “panic!” macro) or “recoverable” errors (by returning a “Result” enum), how to propagate errors using the question mark operator, and how to specify return types and return values for functions.
Code example: version 3
Use Rust to develop a miniature version of the “sed” command-line utility, part 1. Covers topics that include a subset of functionality for the “sed” command-line utility that’s used for replacing text, the scope of features that we’ll include in the miniature “sed” utility that we’re building, how to define a “struct” in Rust, how to leverage the “Option” enum for a value that may be either something or nothing, how to instantiate a “struct” in Rust via an associated function in an implementation block, how to bring a “struct” into scope in the binary crate, and how to use the “unwrap_or_else” method on a “Result” enum and define a “closure”.
Code example: version 1