redirects -> _redirects
authorLukeMathWalker <20745048+LukeMathWalker@users.noreply.github.com>
Tue, 6 Aug 2024 15:34:08 +0000 (17:34 +0200)
committerLukeMathWalker <20745048+LukeMathWalker@users.noreply.github.com>
Tue, 6 Aug 2024 15:34:08 +0000 (17:34 +0200)
.github/workflows/ci.yml
site/_redirects [new file with mode: 0644]
site/redirects [deleted file]

index c0c2aac..8ccd0bd 100644 (file)
@@ -101,10 +101,10 @@ jobs:
       - uses: actions/checkout@v3
       - run: sudo apt-get update && sudo apt-get install -y jq
       - run: |
-          ./helpers/json2redirects.sh book/link2alias.json > site/redirects
+          ./helpers/json2redirects.sh book/link2alias.json > site/_redirects
       # Verify nothing has changed, meaning that the redirect file is up-to-date
       - run: |
-          git diff --exit-code site/redirects
+          git diff --exit-code site/_redirects
 
   formatter:
     runs-on: ubuntu-latest
diff --git a/site/_redirects b/site/_redirects
new file mode 100644 (file)
index 0000000..761e454
--- /dev/null
@@ -0,0 +1,187 @@
+/f2u https://blog.acolyer.org/2019/05/28/cheri-abi/
+/f4q https://crates.io
+/f2n https://crates.io/crates/cargo-modules
+/ffr https://doc.rust-lang.org/book/ch03-02-data-types.html#integer-types
+/f6t https://doc.rust-lang.org/book/title-page.html
+/f4m https://doc.rust-lang.org/cargo/reference/cargo-targets.html#cargo-targets
+/ffc https://doc.rust-lang.org/cargo/reference/profiles.html
+/f45 https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html
+/f6u https://doc.rust-lang.org/nomicon/
+/f2z https://doc.rust-lang.org/reference/expressions/operator-expr.html#numeric-cast
+/fzf https://doc.rust-lang.org/reference/items/implementations.html#trait-implementation-coherence
+/f4c https://doc.rust-lang.org/reference/lifetime-elision.html
+/fxy https://doc.rust-lang.org/std/cell/struct.UnsafeCell.html
+/fzm https://doc.rust-lang.org/std/cmp/index.html
+/fzz https://doc.rust-lang.org/std/cmp/trait.PartialEq.html
+/fzb https://doc.rust-lang.org/std/cmp/trait.PartialOrd.html
+/fzp https://doc.rust-lang.org/std/convert/trait.From.html#implementors
+/fzl https://doc.rust-lang.org/std/convert/trait.Into.html#implementors
+/f4s https://doc.rust-lang.org/std/iter/trait.FusedIterator.html
+/fxf https://doc.rust-lang.org/std/iter/trait.Iterator.html
+/ffj https://doc.rust-lang.org/std/keyword.for.html
+/ffh https://doc.rust-lang.org/std/keyword.while.html
+/ffl https://doc.rust-lang.org/std/macro.panic.html
+/f27 https://doc.rust-lang.org/std/mem/fn.size_of.html
+/fzn https://doc.rust-lang.org/std/ops/index.html
+/fz4 https://doc.rust-lang.org/std/ops/trait.Add.html
+/fzt https://doc.rust-lang.org/std/ops/trait.Deref.html#deref-coercion
+/fzv https://doc.rust-lang.org/std/ops/trait.Div.html
+/fz6 https://doc.rust-lang.org/std/ops/trait.Mul.html
+/fz8 https://doc.rust-lang.org/std/ops/trait.Rem.html
+/fzx https://doc.rust-lang.org/std/ops/trait.Sub.html
+/f2c https://doc.rust-lang.org/std/prelude/index.html
+/ffe https://doc.rust-lang.org/std/primitive.i32.html#associatedconstant.MAX
+/ff7 https://doc.rust-lang.org/std/primitive.i32.html#associatedconstant.MIN
+/ffw https://doc.rust-lang.org/std/primitive.u32.html#associatedconstant.MAX
+/f4d https://doc.rust-lang.org/std/slice/struct.Iter.html
+/f26 https://doc.rust-lang.org/std/string/struct.String.html
+/fxh https://doc.rust-lang.org/std/sync/atomic/index.html
+/f4j https://doc.rust-lang.org/std/vec/struct.Vec.html#method.iter
+/f2y https://docs.rs/dhat/latest/dhat/
+/fx2 https://docs.rs/itertools/
+/f4n https://docs.rs/thiserror/latest/thiserror/
+/f65 https://docs.rs/tokio-stream/latest/tokio_stream/
+/f6m https://docs.rs/tokio-stream/latest/tokio_stream/trait.StreamExt.html#method.merge
+/f63 https://docs.rs/tokio-util/latest/tokio_util/sync/struct.CancellationToken.html
+/f6z https://docs.rs/tokio/latest/tokio/task/struct.JoinError.html
+/f6k https://docs.rust-embedded.org/book/
+/f2h https://en.wikipedia.org/wiki/Dangling_pointer
+/fx7 https://en.wikipedia.org/wiki/Data_segment
+/f2r https://en.wikipedia.org/wiki/Memory_address
+/f2e https://en.wikipedia.org/wiki/Stack_overflow
+/ff9 https://en.wikipedia.org/wiki/Two%27s_complement
+/f2v https://en.wikipedia.org/wiki/UTF-8
+/f6r https://exercism.io
+/ffb https://github.com/LukeMathWalker/cargo-chef
+/ffm https://github.com/LukeMathWalker/wiremock-rs
+/fzq https://github.com/dtolnay/cargo-expand
+/fzw https://github.com/dtolnay/proc-macro-workshop
+/ff6 https://github.com/mainmatter/100-exercises-to-learn-rust
+/ff3 https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/01_intro/00_welcome
+/ffq https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/01_intro/01_syntax
+/ff5 https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/02_basic_calculator/00_intro
+/fft https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/02_basic_calculator/01_integers
+/ffy https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/02_basic_calculator/02_variables
+/ffu https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/02_basic_calculator/03_if_else
+/ffk https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/02_basic_calculator/04_panics
+/ffs https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/02_basic_calculator/05_factorial
+/ffg https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/02_basic_calculator/06_while
+/ffd https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/02_basic_calculator/07_for
+/f2f https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/02_basic_calculator/08_overflow
+/f22 https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/02_basic_calculator/09_saturating
+/f24 https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/02_basic_calculator/10_as_casting
+/f2x https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/03_ticket_v1/00_intro
+/f28 https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/03_ticket_v1/01_struct
+/f2b https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/03_ticket_v1/02_validation
+/f2m https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/03_ticket_v1/03_modules
+/f23 https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/03_ticket_v1/04_visibility
+/f2q https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/03_ticket_v1/05_encapsulation
+/f25 https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/03_ticket_v1/06_ownership
+/f2w https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/03_ticket_v1/07_setters
+/f29 https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/03_ticket_v1/08_stack
+/f2p https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/03_ticket_v1/09_heap
+/f2l https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/03_ticket_v1/10_references_in_memory
+/f2g https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/03_ticket_v1/11_destructor
+/f2j https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/03_ticket_v1/12_outro
+/f2d https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/04_traits/00_intro
+/f2a https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/04_traits/01_trait
+/fz2 https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/04_traits/02_orphan_rule
+/fz3 https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/04_traits/03_operator_overloading
+/fz7 https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/04_traits/04_derive
+/fz9 https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/04_traits/05_trait_bounds
+/fzr https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/04_traits/06_str_slice
+/fzy https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/04_traits/07_deref
+/fzu https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/04_traits/08_sized
+/fzk https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/04_traits/09_from
+/fzs https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/04_traits/10_assoc_vs_generic
+/fzh https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/04_traits/11_clone
+/fzg https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/04_traits/12_copy
+/fzj https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/04_traits/13_drop
+/fzc https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/04_traits/14_outro
+/fza https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/05_ticket_v2/00_intro
+/f4f https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/05_ticket_v2/01_enum
+/f42 https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/05_ticket_v2/02_match
+/f4z https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/05_ticket_v2/03_variants_with_data
+/f44 https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/05_ticket_v2/04_if_let
+/f4x https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/05_ticket_v2/05_nullability
+/f46 https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/05_ticket_v2/06_fallibility
+/f4v https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/05_ticket_v2/07_unwrap
+/f48 https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/05_ticket_v2/08_error_enums
+/f4b https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/05_ticket_v2/09_error_trait
+/f43 https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/05_ticket_v2/10_packages
+/f4w https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/05_ticket_v2/11_dependencies
+/f47 https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/05_ticket_v2/12_thiserror
+/f4e https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/05_ticket_v2/13_try_from
+/f49 https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/05_ticket_v2/14_source
+/f4y https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/05_ticket_v2/15_outro
+/f4u https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/06_ticket_management/00_intro
+/f4p https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/06_ticket_management/01_arrays
+/f4l https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/06_ticket_management/02_vec
+/f4k https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/06_ticket_management/03_resizing
+/f4h https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/06_ticket_management/04_iterators
+/f4g https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/06_ticket_management/05_iter
+/f4a https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/06_ticket_management/06_lifetimes
+/fxz https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/06_ticket_management/07_combinators
+/fx4 https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/06_ticket_management/08_impl_trait
+/fxx https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/06_ticket_management/09_impl_trait_2
+/fx6 https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/06_ticket_management/10_slices
+/fxv https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/06_ticket_management/11_mutable_slices
+/fx8 https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/06_ticket_management/12_two_states
+/fxb https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/06_ticket_management/13_index
+/fxn https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/06_ticket_management/14_index_mut
+/fxm https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/06_ticket_management/15_hashmap
+/fx3 https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/06_ticket_management/16_btreemap
+/fxq https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/07_threads/00_intro
+/fxw https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/07_threads/01_threads
+/fxe https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/07_threads/02_static
+/fx9 https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/07_threads/03_leak
+/fxr https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/07_threads/04_scoped_threads
+/fxt https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/07_threads/05_channels
+/fxu https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/07_threads/06_interior_mutability
+/fxp https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/07_threads/07_ack
+/fxl https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/07_threads/08_client
+/fxk https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/07_threads/09_bounded
+/fxs https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/07_threads/10_patch
+/fxj https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/07_threads/11_locks
+/fxd https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/07_threads/12_rw_lock
+/fxc https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/07_threads/13_without_channels
+/fxa https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/07_threads/14_sync
+/f6f https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/08_futures/00_intro
+/f62 https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/08_futures/01_async_fn
+/f64 https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/08_futures/02_spawn
+/f6x https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/08_futures/03_runtime
+/f66 https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/08_futures/04_future
+/f68 https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/08_futures/05_blocking
+/f6b https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/08_futures/06_async_aware_primitives
+/f6q https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/08_futures/07_cancellation
+/f6e https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/08_futures/08_outro
+/ffz https://github.com/mainmatter/100-exercises-to-learn-rust/tree/solutions
+/fzd https://github.com/mainmatter/rust-advanced-testing-workshop
+/f69 https://github.com/rust-lang/rustlings
+/ffa https://huonw.github.io/blog/2016/04/myths-and-legends-about-integer-overflow-in-rust/
+/f4r https://lexi-lambda.github.io/blog/2019/11/05/parse-don-t-validate/
+/ff2 https://mainmatter.com/contact/
+/fff https://mainmatter.com/rust-consulting/
+/fxg https://marabos.nl/atomics/
+/f6p https://nostarch.com/rust-rustaceans
+/f2k https://owasp.org/www-community/vulnerabilities/Doubly_freeing_memory
+/f2s https://owasp.org/www-community/vulnerabilities/Using_freed_memory
+/ffn https://pavex.dev
+/ffp https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=36e5ddbe3b3f741dfa9f74c956622bac
+/fx5 https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=afedf7062298ca8f5a248bc551062eaa
+/ffx https://rust-exercises.com/100-exercises-to-learn-rust.pdf
+/ff4 https://rust-exercises.com/100-exercises/
+/f6s https://rust-exercises.com/advanced-testing/
+/f6h https://rust-exercises.com/telemetry/
+/fze https://rust-lang.github.io/api-guidelines/naming.html#casing-conforms-to-rfc-430-c-case
+/f6w https://rust-lang.github.io/wg-async/vision/submitted_stories/status_quo/barbara_battles_buffered_streams.html
+/f6v https://ryhl.io/blog/async-what-is-blocking/
+/f6n https://tokio.rs/tokio/tutorial/select
+/f2t https://valgrind.org/docs/manual/dh-manual.html
+/fz5 https://veykril.github.io/tlborm/
+/f67 https://without.boats/blog/the-scoped-task-trilemma/
+/ffv https://www.lpalmieri.com/
+/f4t https://www.lpalmieri.com/posts/2020-12-11-zero-to-production-6-domain-modelling/
+/f6y https://www.oreilly.com/library/view/programming-rust-2nd/9781492052586/
+/f6l https://www.youtube.com/playlist?list=PLqbS7AVVErFirH9armw8yXlE6dacF-A6z
+/ff8 https://zero2prod.com
diff --git a/site/redirects b/site/redirects
deleted file mode 100644 (file)
index 761e454..0000000
+++ /dev/null
@@ -1,187 +0,0 @@
-/f2u https://blog.acolyer.org/2019/05/28/cheri-abi/
-/f4q https://crates.io
-/f2n https://crates.io/crates/cargo-modules
-/ffr https://doc.rust-lang.org/book/ch03-02-data-types.html#integer-types
-/f6t https://doc.rust-lang.org/book/title-page.html
-/f4m https://doc.rust-lang.org/cargo/reference/cargo-targets.html#cargo-targets
-/ffc https://doc.rust-lang.org/cargo/reference/profiles.html
-/f45 https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html
-/f6u https://doc.rust-lang.org/nomicon/
-/f2z https://doc.rust-lang.org/reference/expressions/operator-expr.html#numeric-cast
-/fzf https://doc.rust-lang.org/reference/items/implementations.html#trait-implementation-coherence
-/f4c https://doc.rust-lang.org/reference/lifetime-elision.html
-/fxy https://doc.rust-lang.org/std/cell/struct.UnsafeCell.html
-/fzm https://doc.rust-lang.org/std/cmp/index.html
-/fzz https://doc.rust-lang.org/std/cmp/trait.PartialEq.html
-/fzb https://doc.rust-lang.org/std/cmp/trait.PartialOrd.html
-/fzp https://doc.rust-lang.org/std/convert/trait.From.html#implementors
-/fzl https://doc.rust-lang.org/std/convert/trait.Into.html#implementors
-/f4s https://doc.rust-lang.org/std/iter/trait.FusedIterator.html
-/fxf https://doc.rust-lang.org/std/iter/trait.Iterator.html
-/ffj https://doc.rust-lang.org/std/keyword.for.html
-/ffh https://doc.rust-lang.org/std/keyword.while.html
-/ffl https://doc.rust-lang.org/std/macro.panic.html
-/f27 https://doc.rust-lang.org/std/mem/fn.size_of.html
-/fzn https://doc.rust-lang.org/std/ops/index.html
-/fz4 https://doc.rust-lang.org/std/ops/trait.Add.html
-/fzt https://doc.rust-lang.org/std/ops/trait.Deref.html#deref-coercion
-/fzv https://doc.rust-lang.org/std/ops/trait.Div.html
-/fz6 https://doc.rust-lang.org/std/ops/trait.Mul.html
-/fz8 https://doc.rust-lang.org/std/ops/trait.Rem.html
-/fzx https://doc.rust-lang.org/std/ops/trait.Sub.html
-/f2c https://doc.rust-lang.org/std/prelude/index.html
-/ffe https://doc.rust-lang.org/std/primitive.i32.html#associatedconstant.MAX
-/ff7 https://doc.rust-lang.org/std/primitive.i32.html#associatedconstant.MIN
-/ffw https://doc.rust-lang.org/std/primitive.u32.html#associatedconstant.MAX
-/f4d https://doc.rust-lang.org/std/slice/struct.Iter.html
-/f26 https://doc.rust-lang.org/std/string/struct.String.html
-/fxh https://doc.rust-lang.org/std/sync/atomic/index.html
-/f4j https://doc.rust-lang.org/std/vec/struct.Vec.html#method.iter
-/f2y https://docs.rs/dhat/latest/dhat/
-/fx2 https://docs.rs/itertools/
-/f4n https://docs.rs/thiserror/latest/thiserror/
-/f65 https://docs.rs/tokio-stream/latest/tokio_stream/
-/f6m https://docs.rs/tokio-stream/latest/tokio_stream/trait.StreamExt.html#method.merge
-/f63 https://docs.rs/tokio-util/latest/tokio_util/sync/struct.CancellationToken.html
-/f6z https://docs.rs/tokio/latest/tokio/task/struct.JoinError.html
-/f6k https://docs.rust-embedded.org/book/
-/f2h https://en.wikipedia.org/wiki/Dangling_pointer
-/fx7 https://en.wikipedia.org/wiki/Data_segment
-/f2r https://en.wikipedia.org/wiki/Memory_address
-/f2e https://en.wikipedia.org/wiki/Stack_overflow
-/ff9 https://en.wikipedia.org/wiki/Two%27s_complement
-/f2v https://en.wikipedia.org/wiki/UTF-8
-/f6r https://exercism.io
-/ffb https://github.com/LukeMathWalker/cargo-chef
-/ffm https://github.com/LukeMathWalker/wiremock-rs
-/fzq https://github.com/dtolnay/cargo-expand
-/fzw https://github.com/dtolnay/proc-macro-workshop
-/ff6 https://github.com/mainmatter/100-exercises-to-learn-rust
-/ff3 https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/01_intro/00_welcome
-/ffq https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/01_intro/01_syntax
-/ff5 https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/02_basic_calculator/00_intro
-/fft https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/02_basic_calculator/01_integers
-/ffy https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/02_basic_calculator/02_variables
-/ffu https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/02_basic_calculator/03_if_else
-/ffk https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/02_basic_calculator/04_panics
-/ffs https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/02_basic_calculator/05_factorial
-/ffg https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/02_basic_calculator/06_while
-/ffd https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/02_basic_calculator/07_for
-/f2f https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/02_basic_calculator/08_overflow
-/f22 https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/02_basic_calculator/09_saturating
-/f24 https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/02_basic_calculator/10_as_casting
-/f2x https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/03_ticket_v1/00_intro
-/f28 https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/03_ticket_v1/01_struct
-/f2b https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/03_ticket_v1/02_validation
-/f2m https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/03_ticket_v1/03_modules
-/f23 https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/03_ticket_v1/04_visibility
-/f2q https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/03_ticket_v1/05_encapsulation
-/f25 https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/03_ticket_v1/06_ownership
-/f2w https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/03_ticket_v1/07_setters
-/f29 https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/03_ticket_v1/08_stack
-/f2p https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/03_ticket_v1/09_heap
-/f2l https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/03_ticket_v1/10_references_in_memory
-/f2g https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/03_ticket_v1/11_destructor
-/f2j https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/03_ticket_v1/12_outro
-/f2d https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/04_traits/00_intro
-/f2a https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/04_traits/01_trait
-/fz2 https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/04_traits/02_orphan_rule
-/fz3 https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/04_traits/03_operator_overloading
-/fz7 https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/04_traits/04_derive
-/fz9 https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/04_traits/05_trait_bounds
-/fzr https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/04_traits/06_str_slice
-/fzy https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/04_traits/07_deref
-/fzu https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/04_traits/08_sized
-/fzk https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/04_traits/09_from
-/fzs https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/04_traits/10_assoc_vs_generic
-/fzh https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/04_traits/11_clone
-/fzg https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/04_traits/12_copy
-/fzj https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/04_traits/13_drop
-/fzc https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/04_traits/14_outro
-/fza https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/05_ticket_v2/00_intro
-/f4f https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/05_ticket_v2/01_enum
-/f42 https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/05_ticket_v2/02_match
-/f4z https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/05_ticket_v2/03_variants_with_data
-/f44 https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/05_ticket_v2/04_if_let
-/f4x https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/05_ticket_v2/05_nullability
-/f46 https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/05_ticket_v2/06_fallibility
-/f4v https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/05_ticket_v2/07_unwrap
-/f48 https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/05_ticket_v2/08_error_enums
-/f4b https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/05_ticket_v2/09_error_trait
-/f43 https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/05_ticket_v2/10_packages
-/f4w https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/05_ticket_v2/11_dependencies
-/f47 https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/05_ticket_v2/12_thiserror
-/f4e https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/05_ticket_v2/13_try_from
-/f49 https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/05_ticket_v2/14_source
-/f4y https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/05_ticket_v2/15_outro
-/f4u https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/06_ticket_management/00_intro
-/f4p https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/06_ticket_management/01_arrays
-/f4l https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/06_ticket_management/02_vec
-/f4k https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/06_ticket_management/03_resizing
-/f4h https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/06_ticket_management/04_iterators
-/f4g https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/06_ticket_management/05_iter
-/f4a https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/06_ticket_management/06_lifetimes
-/fxz https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/06_ticket_management/07_combinators
-/fx4 https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/06_ticket_management/08_impl_trait
-/fxx https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/06_ticket_management/09_impl_trait_2
-/fx6 https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/06_ticket_management/10_slices
-/fxv https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/06_ticket_management/11_mutable_slices
-/fx8 https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/06_ticket_management/12_two_states
-/fxb https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/06_ticket_management/13_index
-/fxn https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/06_ticket_management/14_index_mut
-/fxm https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/06_ticket_management/15_hashmap
-/fx3 https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/06_ticket_management/16_btreemap
-/fxq https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/07_threads/00_intro
-/fxw https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/07_threads/01_threads
-/fxe https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/07_threads/02_static
-/fx9 https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/07_threads/03_leak
-/fxr https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/07_threads/04_scoped_threads
-/fxt https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/07_threads/05_channels
-/fxu https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/07_threads/06_interior_mutability
-/fxp https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/07_threads/07_ack
-/fxl https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/07_threads/08_client
-/fxk https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/07_threads/09_bounded
-/fxs https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/07_threads/10_patch
-/fxj https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/07_threads/11_locks
-/fxd https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/07_threads/12_rw_lock
-/fxc https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/07_threads/13_without_channels
-/fxa https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/07_threads/14_sync
-/f6f https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/08_futures/00_intro
-/f62 https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/08_futures/01_async_fn
-/f64 https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/08_futures/02_spawn
-/f6x https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/08_futures/03_runtime
-/f66 https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/08_futures/04_future
-/f68 https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/08_futures/05_blocking
-/f6b https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/08_futures/06_async_aware_primitives
-/f6q https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/08_futures/07_cancellation
-/f6e https://github.com/mainmatter/100-exercises-to-learn-rust/tree/main/exercises/08_futures/08_outro
-/ffz https://github.com/mainmatter/100-exercises-to-learn-rust/tree/solutions
-/fzd https://github.com/mainmatter/rust-advanced-testing-workshop
-/f69 https://github.com/rust-lang/rustlings
-/ffa https://huonw.github.io/blog/2016/04/myths-and-legends-about-integer-overflow-in-rust/
-/f4r https://lexi-lambda.github.io/blog/2019/11/05/parse-don-t-validate/
-/ff2 https://mainmatter.com/contact/
-/fff https://mainmatter.com/rust-consulting/
-/fxg https://marabos.nl/atomics/
-/f6p https://nostarch.com/rust-rustaceans
-/f2k https://owasp.org/www-community/vulnerabilities/Doubly_freeing_memory
-/f2s https://owasp.org/www-community/vulnerabilities/Using_freed_memory
-/ffn https://pavex.dev
-/ffp https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=36e5ddbe3b3f741dfa9f74c956622bac
-/fx5 https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=afedf7062298ca8f5a248bc551062eaa
-/ffx https://rust-exercises.com/100-exercises-to-learn-rust.pdf
-/ff4 https://rust-exercises.com/100-exercises/
-/f6s https://rust-exercises.com/advanced-testing/
-/f6h https://rust-exercises.com/telemetry/
-/fze https://rust-lang.github.io/api-guidelines/naming.html#casing-conforms-to-rfc-430-c-case
-/f6w https://rust-lang.github.io/wg-async/vision/submitted_stories/status_quo/barbara_battles_buffered_streams.html
-/f6v https://ryhl.io/blog/async-what-is-blocking/
-/f6n https://tokio.rs/tokio/tutorial/select
-/f2t https://valgrind.org/docs/manual/dh-manual.html
-/fz5 https://veykril.github.io/tlborm/
-/f67 https://without.boats/blog/the-scoped-task-trilemma/
-/ffv https://www.lpalmieri.com/
-/f4t https://www.lpalmieri.com/posts/2020-12-11-zero-to-production-6-domain-modelling/
-/f6y https://www.oreilly.com/library/view/programming-rust-2nd/9781492052586/
-/f6l https://www.youtube.com/playlist?list=PLqbS7AVVErFirH9armw8yXlE6dacF-A6z
-/ff8 https://zero2prod.com