Last active
January 7, 2023 22:21
-
-
Save FredEckert/a2319a0284d2692139a80b466e4aa86e to your computer and use it in GitHub Desktop.
hyperlinks from the book Command-Line Rust
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Title: Command-Line Rust | |
Subtitle: A Project-Based Primer for Writing Rust CLIs | |
Author: Ken Youens-Clark | |
Publisher: O'Reilly | |
Publish Date: January 2022 | |
Preface: | |
What is Rust | |
https://oreil.ly/3rumR = https://insights.stackoverflow.com/survey/2021#technology (Stackoverflow survey) | |
The coding challenges | |
https://oreil.ly/fYV82 = https://www.gnu.org/software/coreutils/manual/html_node/index.html (GNU Coreutils 9.1 Docs) | |
https://oreil.ly/RmiBN = https://github.com/uutils/coreutils (rust unix utils repo) | |
Getting Rust and the Code | |
https://oreil.ly/camNw = https://www.rust-lang.org/tools/install (install command) | |
https://oreil.ly/pfhMC = https://github.com/kyclark/command-line-rust (CLR Book repo) | |
https://oreil.ly/OhYek = https://doc.rust-lang.org/cargo/ (The Cargo Book) | |
https://oreil.ly/XyzTS = https://github.com/rust-lang/rust-clippy (Clippy repo) | |
https://oreil.ly/commandlinerust_code= https://github.com/kyclark/command-line-rust (CLR Book repo) | |
Chapter 1 - Truth or Consequences: | |
Getting started with "Hello, World!" | |
https://oreil.ly/GGmNx = https://doc.rust-lang.org/std/macro.println.html (Macro std::println) | |
https://oreil.ly/RFXMp = https://doc.rust-lang.org/reference/macros-by-example.html (Macros By Example) | |
https://oreil.ly/SQHyp = https://doc.rust-lang.org/std/macro.assert.html (Macro std::assert) | |
https://oreil.ly/KACU4 = https://doc.rust-lang.org/std/macro.vec.html (Macro std::vec) | |
Creating and running a project with Cargo | |
https://oreil.ly/1Fs8Q = https://doc.rust-lang.org/cargo/appendix/glossary.html#target (Glossary: Target) | |
https://oreil.ly/4fgvX = https://doc.rust-lang.org/edition-guide/editions/index.html (What are Editions?) | |
Writing and Running Integration Tests | |
https://oreil.ly/SQHyp = https://doc.rust-lang.org/std/macro.assert.html (Macro std::assert) | |
https://oreil.ly/81q3a = https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html (cargo.toml cargo.lock) | |
https://oreil.ly/P6Bfw = https://doc.rust-lang.org/std/macro.assert_eq.html (Macro std::assert_eq) | |
https://oreil.ly/ErqAX = https://doc.rust-lang.org/std/process/struct.Command.html (Struct std::process::Command) | |
https://oreil.ly/cYjVT = https://doc.rust-lang.org/std/keyword.let.html (Keyword let) | |
https://oreil.ly/SH6Qr = https://doc.rust-lang.org/std/keyword.mut.html (Keyword mut) | |
https://oreil.ly/EYxds = https://doc.rust-lang.org/std/result/enum.Result.html (Enum std::result::Result) | |
https://oreil.ly/hyuZZ = https://docs.rs/assert_cmd/1.0.3/assert_cmd/ (Crate assert_cmd) | |
https://oreil.ly/pezix = https://doc.rust-lang.org/rust-by-example/testing/dev_dependencies.html (Development dependencies) | |
https://oreil.ly/SV6w1 = https://doc.rust-lang.org/std/result/enum.Result.html#method.unwrap (Enum std::result::Result unwrap) | |
https://oreil.ly/4VWet = https://docs.rs/assert_cmd/2.0.0/assert_cmd/assert/struct.Assert.html#method.success (Struct assert_cmd::assert::Assert success) | |
https://oreil.ly/hrM3X = https://doc.rust-lang.org/std/process/fn.exit.html (Function std::process::exit) | |
https://oreil.ly/QHgoR = https://docs.rs/assert_cmd/2.0.0/assert_cmd/assert/struct.Assert.html#method.failure (Struct assert_cmd::assert::Assert failure) | |
https://oreil.ly/HPsKS = https://doc.rust-lang.org/std/process/fn.abort.html (Function std::process::abort) | |
Chapter 2 - Test for Echo: | |
Getting Started | |
https://oreil.ly/Edncj = https://doc.rust-lang.org/std/macro.println.html (Macro std::println) | |
https://oreil.ly/BVKGJ = https://doc.rust-lang.org/std/primitive.unit.html (Primitive Type unit) | |
Accessing the Command-Line Arguments | |
https://oreil.ly/4lJGE = https://doc.rust-lang.org/stable/std/env/fn.args.html (Function std::env::args) | |
https://oreil.ly/Wtkqr = https://doc.rust-lang.org/stable/std/env/struct.Args.html (Struct std::env::Args) | |
https://oreil.ly/gaxyv = https://doc.rust-lang.org/std/fmt/trait.Display.html (Trait std::fmt::Display) | |
https://oreil.ly/zPdzZ = https://doc.rust-lang.org/stable/std/fmt/trait.Debug.html (Trait std::fmt::Debug) | |
Adding clap as a Dependency | |
https://oreil.ly/X0qVZ = https://docs.rs/clap/2.33.3/clap/ (Crate clap) | |
https://oreil.ly/mvf9F = https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html (Specifying Dependencies) | |
Parsing Command-Line Arguments Using clap | |
https://oreil.ly/CdbFz = https://docs.rs/about (Docs.rs documentation About Docs.rs) | |
https://oreil.ly/3wAbH = https://docs.rs/clap/2.33.3/clap/struct.App.html (Struct clap::App) | |
https://oreil.ly/QuLf7 = https://docs.rs/clap/2.33.3/clap/struct.Arg.html (Struct clap::Arg) | |
https://oreil.ly/lTlEk = https://docs.rs/clap/2.33.3/clap/struct.App.html#method.get_matches (Struct clap::App method get_matches) | |
Creating the Program Output | |
https://oreil.ly/kPPN4 = https://docs.rs/clap/2.33.3/clap/struct.ArgMatches.html#method.values_of (Struct clap::ArgMatches::values_of) | |
https://oreil.ly/AobBW = https://docs.rs/clap/2.33.3/clap/struct.ArgMatches.html#method.values_of_lossy (Struct clap::ArgMatches::values_of_lossy) | |
https://oreil.ly/WkWZs = https://doc.rust-lang.org/std/option/enum.Option.html (Enum std::option::Option) | |
https://oreil.ly/K09ME = https://docs.rs/clap/2.33.3/clap/struct.Values.html (Struct clap::Values) | |
https://oreil.ly/pZU3A = https://doc.rust-lang.org/std/vec/struct.Vec.html (Struct std::vec::Vec) | |
https://oreil.ly/X32Yh = https://doc.rust-lang.org/std/string/struct.String.html (Struct std::string::String) | |
https://oreil.ly/4bPoA = https://doc.rust-lang.org/std/option/enum.Option.html#method.unwrap (Enum std::option::Option unwrap) | |
https://oreil.ly/DrERd = https://doc.rust-lang.org/std/macro.panic.html (Macro std::panic) | |
https://oreil.ly/4Zh0A = https://doc.rust-lang.org/std/primitive.bool.html (Primitive Type bool) | |
https://oreil.ly/i8IBx = https://doc.rust-lang.org/std/vec/struct.Vec.html#method.join (Struct std::vec::Vec join) | |
https://oreil.ly/SAlnL = https://doc.rust-lang.org/std/macro.vec.html (Macro std::vec) | |
https://oreil.ly/DREEk = https://doc.rust-lang.org/std/primitive.str.html (Primitive Type str) | |
https://oreil.ly/SQHyp = https://doc.rust-lang.org/std/macro.assert.html (Macro std::assert) | |
https://oreil.ly/P6Bfw = https://doc.rust-lang.org/std/macro.assert_eq.html (Macro std::assert_eq) | |
https://oreil.ly/nMLGY = https://doc.rust-lang.org/std/macro.print.html (Macro std::print) | |
Writing Integration Tests | |
https://oreil.ly/GGGMZ | |
Creating the Test Output Files | |
https://oreil.ly/pfhMC = https://github.com/kyclark/command-line-rust (CLR Book repo) | |
Comparing Program Output | |
https://oreil.ly/dZGzk | |
Using the Result Type | |
https://oreil.ly/s0dqy | |
https://oreil.ly/r9nut | |
https://oreil.ly/NtPOH | |
https://oreil.ly/u5T4g | |
https://oreil.ly/rtZW1 | |
https://oreil.ly/cpdYi | |
https://oreil.ly/NHidS | |
To be continued... | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment