mirror of
https://github.com/kamranahmedse/developer-roadmap.git
synced 2026-03-12 17:51:53 +08:00
chore: sync content to repo (#9526)
Co-authored-by: kamranahmedse <4921183+kamranahmedse@users.noreply.github.com>
This commit is contained in:
committed by
GitHub
parent
e18d6c8e3a
commit
ee99860315
@@ -2,7 +2,7 @@
|
||||
|
||||
`Arc<T>` (Atomic Reference Counting) is a thread-safe smart pointer for sharing immutable data across multiple threads. It uses atomic operations to track reference counts, allowing multiple ownership of heap-allocated data. When the reference count reaches zero, the data is automatically cleaned up.
|
||||
|
||||
Learn more from the following links:
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [@official@Arc in std::sync](https://doc.rust-lang.org/std/sync/struct.Arc.html)
|
||||
- [@official@Arc in Rust Lang](https://doc.rust-lang.org/rust-by-example/std/arc.html)
|
||||
@@ -2,9 +2,9 @@
|
||||
|
||||
Arrays are fixed-size collections of elements of the same type stored consecutively in memory. Size must be known at compile time and cannot change. Syntax: `let arr: [type; size] = [elements];`. Example: `let nums: [i32; 3] = [1, 2, 3];`. Access elements with zero-based indexing: `arr[0]`.
|
||||
|
||||
Learn more from the following links:
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [@official@Array](https://doc.rust-lang.org/std/primitive.array.html)
|
||||
- [@article@The Array Type](https://rust-book.cs.brown.edu/ch03-02-data-types.html#the-array-type)
|
||||
- [@article@Rust Array (With Examples)](https://www.programiz.com/rust/array)
|
||||
- [@video@Rust Tutorial - Arrays](https://www.youtube.com/watch?v=t047Hseyj_k&t=767s)
|
||||
- [@video@Rust Tutorial - Arrays](https://www.youtube.com/watch?v=t047Hseyj_k&t=767s)
|
||||
@@ -5,4 +5,4 @@ Atomic operations provide lock-free concurrency through uninterruptible operatio
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [@official@fence in std::sync::atomic](https://doc.rust-lang.org/std/sync/atomic/fn.fence.html)
|
||||
- [@article@Atomic Operations and Memory Barriers](https://medium.com/@murataslan1/atomic-operations-and-memory-barriers-43ee6f60ead5)
|
||||
- [@article@Atomic Operations and Memory Barriers](https://medium.com/@murataslan1/atomic-operations-and-memory-barriers-43ee6f60ead5)
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
`BinaryHeap<T>` is a priority queue implemented as a max-heap using a binary tree structure stored in an array. The largest element is always at the root, accessible via `peek()`. Supports O(log n) insertion with `push()` and removal with `pop()`. Useful for priority-based algorithms.
|
||||
|
||||
Learn more from the following links:
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [@official@BinaryHeap](https://doc.rust-lang.org/std/collections/struct.BinaryHeap.html)
|
||||
- [@article@The Rust Guide - BinaryHeap](https://rust-guide.com/en/documentation/collections/BinaryHeap)
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
|
||||
Rust's `bool` primitive type represents truth values with two possible states: `true` or `false`. Booleans are used in conditional statements and logical operations like `&&` (AND), `||` (OR), and `!` (NOT). When cast to integers, `true` becomes `1` and `false` becomes `0`. Example: `let is_active: bool = true;`
|
||||
|
||||
Learn more from the following links:
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [@official@bool](https://doc.rust-lang.org/std/primitive.bool.html)
|
||||
- [@article@The Boolean Type](https://rust-book.cs.brown.edu/ch03-02-data-types.html#the-boolean-type)
|
||||
- [@video@Rust Tutorial - Booleans](https://www.youtube.com/watch?v=t047Hseyj_k&t=388s)
|
||||
- [@video@Rust Tutorial - Booleans](https://www.youtube.com/watch?v=t047Hseyj_k&t=388s)
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
Borrowing allows accessing data without taking ownership. Immutable borrows (`&T`) permit multiple read-only references, while mutable borrows (`&mut T`) allow one exclusive reference that can modify data. Slices (`&[T]`, `&str`) are references to contiguous sequences, enabling safe access to portions of data.
|
||||
|
||||
Learn more from the following links:
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [@official@References and Borrowing](https://doc.rust-lang.org/book/ch04-02-references-and-borrowing.html)
|
||||
- [@article@The Slice Type](https://rust-book.cs.brown.edu/ch04-04-slices.html)
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
`BTreeMap<K, V>` stores key-value pairs in a sorted binary tree structure. Keys must implement `Ord` trait and are automatically kept in sorted order. Provides O(log n) operations for insertion, removal, and lookup. Ideal when you need ordered iteration and range queries.
|
||||
|
||||
Learn more from the following links:
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [@official@BTreeMap](https://doc.rust-lang.org/std/collections/struct.BTreeMap.html)
|
||||
- [@article@BTreeMap](https://cglab.ca/~abeinges/blah/rust-btree-case/)
|
||||
- [@article@BTreeMap](https://cglab.ca/~abeinges/blah/rust-btree-case/)
|
||||
@@ -2,6 +2,6 @@
|
||||
|
||||
`BTreeSet<T>` is a sorted set of unique elements implemented using a B-tree. Elements must implement `Ord` trait and are kept in sorted order. Provides O(log n) insertion, removal, and lookup operations. Supports efficient range queries and set operations like union and intersection.
|
||||
|
||||
Learn more from the following links:
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [@official@Btree Set](https://doc.rust-lang.org/std/collections/struct.BTreeSet.html)
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
Channels enable thread communication via message passing from `std::sync::mpsc` (Multiple Producer, Single Consumer). They have `Sender` for sending data and `Receiver` for receiving. This avoids shared state concurrency issues and enables safe communication between threads without data races.
|
||||
|
||||
Learn more from the following links:
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [@official@Channels](https://doc.rust-lang.org/rust-by-example/std_misc/channels.html)
|
||||
- [@article@Using Channels in Rust: Why and When?](https://howtorust.com/using-channels-in-rust-why-and-when/)
|
||||
@@ -2,9 +2,9 @@
|
||||
|
||||
Rust's `char` type represents a Unicode Scalar Value, supporting far more than ASCII including emojis, accented letters, and various scripts. Each `char` occupies 4 bytes (32 bits) in memory and is defined using single quotes. Example: `let letter: char = 'z';` or `let emoji: char = '🦀';`
|
||||
|
||||
Learn more from the following links:
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [@official@The char Primitive Type](https://doc.rust-lang.org/std/primitive.char.html)
|
||||
- [@article@The Character Type](https://rust-book.cs.brown.edu/ch03-02-data-types.html#the-character-type)
|
||||
- [@article@Unicode Glossary - Unicode Scalar Value](https://www.unicode.org/glossary/#unicode_scalar_value)
|
||||
- [@video@Char Type in Rust](https://www.youtube.com/watch?v=NZaEinuVPVg&pp=ygURY2hhciB0eXBlIGluIHJ1c3Q%3D)
|
||||
- [@video@Char Type in Rust](https://www.youtube.com/watch?v=NZaEinuVPVg&pp=ygURY2hhciB0eXBlIGluIHJ1c3Q%3D)
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
`clap` is Rust's most popular command-line argument parser library. It provides declarative CLI definition with automatic help generation, subcommands, validation, and error handling. Supports both builder pattern and derive macros for easy CLI app development with comprehensive features.
|
||||
|
||||
Learn more from the following links:
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [@official@clap](https://docs.rs/clap/latest/clap/)
|
||||
- [@article@Using Clap in Rust for command line (CLI) Argument Parsing](https://blog.logrocket.com/using-clap-rust-command-line-argument-parsing/)
|
||||
- [@article@Using Clap in Rust for command line (CLI) Argument Parsing](https://blog.logrocket.com/using-clap-rust-command-line-argument-parsing/)
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
CLI utilities are command-line tools that allow users to interact with their system through text commands. Rust is excellent for building fast, reliable CLI tools due to its memory safety and performance. Popular crates like clap and structopt help parse command-line arguments, handle input validation, and generate help messages, making CLI development efficient.
|
||||
|
||||
Learn more from the following links:
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [@official@structopt](https://docs.rs/structopt/latest/structopt/)
|
||||
- [@official@clap](https://docs.rs/clap/latest/clap/)
|
||||
|
||||
@@ -6,4 +6,4 @@ Visit the following resources to learn more:
|
||||
|
||||
- [@official@Modules](https://doc.rust-lang.org/rust-by-example/mod.html)
|
||||
- [@official@Namespaces](https://doc.rust-lang.org/reference/names/namespaces.html)
|
||||
- [@feed@Explore top posts about General Programming](https://app.daily.dev/tags/general-programming?ref=roadmapsh)
|
||||
- [@feed@Explore top posts about General Programming](https://app.daily.dev/tags/general-programming?ref=roadmapsh)
|
||||
@@ -6,4 +6,4 @@ Visit the following resources to learn more:
|
||||
|
||||
- [@official@Fearless Concurrency](https://doc.rust-lang.org/book/ch16-00-concurrency.html)
|
||||
- [@article@Rust Concurrency and Parallelism](https://rustlang.app/article/Rust_concurrency_and_parallelism.html)
|
||||
- [@article@Concurrency and Parallelism in Rust](https://sterlingcobb.medium.com/concurrency-and-parallelism-in-rust-an-overview-and-examples-bd811f5a5afe)
|
||||
- [@article@Concurrency and Parallelism in Rust](https://sterlingcobb.medium.com/concurrency-and-parallelism-in-rust-an-overview-and-examples-bd811f5a5afe)
|
||||
@@ -2,8 +2,8 @@
|
||||
|
||||
In Rust, control flow is managed through various structures, like `if`, `else`, `while`, `for`, `loop`, `match` and `if let`. The `if` and `else` structures are used to execute different blocks of code based on certain conditions. Similar to other languages, `while` and `for` are used for looping over a block of code. The `while` loop repeats a block of code until the condition is false, and the `for` loop is used to iterate over a collection of values, such as an array or a range. The `loop` keyword tells Rust to execute a block of code over and over again forever or until you explicitly tell it to stop. Rust's `match` structure, which is similar to switch statements in other languages, is a powerful tool used for pattern matching: it checks through different cases defined by the programmer and executes the block where the match is found. The `if let` syntax lets you combine `if` and `let` into a less verbose way to handle values that match one pattern while ignoring the rest.
|
||||
|
||||
Learn more from the following links:
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [@official@Control Flow](https://doc.rust-lang.org/book/ch03-05-control-flow.html)
|
||||
- [@article@Concise Control Flow with `if let`](https://rust-book.cs.brown.edu/ch06-03-if-let.html)
|
||||
- [@article@Concise Control Flow with if let](https://rust-book.cs.brown.edu/ch06-03-if-let.html)
|
||||
- [@article@Mastering Control Flow in Rust](https://dev.to/iamdipankarpaul/mastering-control-flow-in-rust-36fd)
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
Variance describes how subtyping relationships change when types are nested. Covariant types preserve ordering (`&'long T` is subtype of `&'short T`), contravariant reverses it, invariant requires exact matches. Affects how lifetimes work with references, boxes, and function parameters.
|
||||
|
||||
Learn more from the following links:
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [@official@Subtyping and Variance](https://doc.rust-lang.org/nomicon/subtyping.html)
|
||||
- [@article@Demystifying Covariant and Contravariant Lifetimes in Rust](https://medium.com/@murataslan1/demystifying-covariant-and-contravariant-lifetimes-in-rust-76051484fe1c)
|
||||
- [@article@Demystifying Covariant and Contravariant Lifetimes in Rust](https://medium.com/@murataslan1/demystifying-covariant-and-contravariant-lifetimes-in-rust-76051484fe1c)
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
`Criterion.rs` is a statistics-driven microbenchmarking library for Rust that provides reliable performance analysis over time. It offers detailed feedback, automatic outlier detection, and statistical methods to compare algorithm performance and track regressions with actionable insights.
|
||||
|
||||
Learn more from the following links:
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [@official@Criterion](https://docs.rs/criterion/latest/criterion/)
|
||||
- [@article@Rust Benchmarking with Criterion.rs](https://www.rustfinity.com/blog/rust-benchmarking-with-criterion)
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
Cryptography involves securing data through encryption (making readable data unreadable) and decryption (reversing the process). Rust offers crypto libraries like `ring`, `sodiumoxide`, and `rust-crypto` for hashing, symmetric/asymmetric encryption, and digital signatures with memory-safe implementations.
|
||||
|
||||
Learn more from the following links:
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [@official@Cryptography — list of Rust libraries/crates](https://lib.rs/cryptography)
|
||||
- [@article@Awesome Rust Cryptography](https://cryptography.rs/)
|
||||
- [@article@Awesome Rust Cryptography](https://cryptography.rs/)
|
||||
@@ -4,4 +4,4 @@ Custom error types use `enum` to define specific error variants with attached da
|
||||
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [@official@Defining an Error Type](https://doc.rust-lang.org/rust-by-example/error/multiple_error_types/define_error_type.html)
|
||||
- [@official@Defining an Error Type](https://doc.rust-lang.org/rust-by-example/error/multiple_error_types/define_error_type.html)
|
||||
@@ -5,4 +5,4 @@ ORMs (Object-Relational Mapping) provide abstraction layers between Rust code an
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [@official@Diesel is a Safe, Extensible ORM and Query Builder for Rust](https://diesel.rs/)
|
||||
- [@article@Choosing the Right ORM for Rust: A Comparative Analysis](https://medium.com/@wiederinchristoph/rusts-ecosystem-offers-a-variety-of-object-relational-mapping-orm-libraries-and-database-ce4690a97a61)
|
||||
- [@article@Choosing the Right ORM for Rust: A Comparative Analysis](https://medium.com/@wiederinchristoph/rusts-ecosystem-offers-a-variety-of-object-relational-mapping-orm-libraries-and-database-ce4690a97a61)
|
||||
@@ -7,4 +7,4 @@ Visit the following resources to learn more:
|
||||
- [@article@Debugging Rust apps with GDB](https://blog.logrocket.com/debugging-rust-apps-with-gdb/)
|
||||
- [@article@Rust Debugging: Easy Guide with Practical Examples](https://boxoflearn.com/rust-debugging-guide/)
|
||||
- [@article@Testing and Debugging in Rust](https://rustmeup.com/testing-and-debugging-in-rust)
|
||||
- [@article@Mastering Rust Debugging: Tips & Tools](https://medium.com/@AlexanderObregon/rust-debugging-strategies-tools-and-best-practices-b18b92e0a921)
|
||||
- [@article@Mastering Rust Debugging: Tips & Tools](https://medium.com/@AlexanderObregon/rust-debugging-strategies-tools-and-best-practices-b18b92e0a921)
|
||||
@@ -5,4 +5,4 @@ Declarative macros use `macro_rules!` for pattern-based code generation at compi
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [@official@Macros](https://doc.rust-lang.org/book/ch20-05-macros.html)
|
||||
- [@article@Macros in Rust: A Tutorial with Examples](https://blog.logrocket.com/macros-in-rust-a-tutorial-with-examples/)
|
||||
- [@article@Macros in Rust: A Tutorial with Examples](https://blog.logrocket.com/macros-in-rust-a-tutorial-with-examples/)
|
||||
@@ -2,8 +2,8 @@
|
||||
|
||||
Stack memory stores fixed-size data with automatic allocation/deallocation following LIFO order - fast but limited. Heap memory stores dynamic-size data with manual management - slower but flexible. Rust's ownership system ensures memory safety across both, with stack being default and heap accessed via smart pointers.
|
||||
|
||||
Learn more from the following resources:
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [@official@Box, Stack and Heap](https://doc.rust-lang.org/rust-by-example/std/box.html)
|
||||
- [@article@Memory Management in Rust: Stack vs. Heap](https://dev.to/iamdipankarpaul/memory-management-in-rust-stack-vs-heap-3m45)
|
||||
- [@article@The Stack and the Heap](https://web.mit.edu/rust-lang_v1.25/arch/amd64_ubuntu1404/share/doc/rust/html/book/first-edition/the-stack-and-the-heap.html)
|
||||
- [@article@The Stack and the Heap](https://web.mit.edu/rust-lang_v1.25/arch/amd64_ubuntu1404/share/doc/rust/html/book/first-edition/the-stack-and-the-heap.html)
|
||||
@@ -1,8 +1,8 @@
|
||||
# Dependency Management with Cargo.toml
|
||||
|
||||
Cargo manages Rust projects and dependencies through `Cargo.toml` files. Dependencies are listed in `[dependencies]` sections with crate names and semantic version specifications. Cargo automatically downloads, builds, and manages external libraries (crates) from crates.io or other sources.
|
||||
Cargo manages Rust projects and dependencies through `Cargo.toml` files. Dependencies are listed in `[dependencies]` sections with crate names and semantic version specifications. Cargo automatically downloads, builds, and manages external libraries (crates) from [crates.io](http://crates.io) or other sources.
|
||||
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [@official@Dependencies](https://doc.rust-lang.org/rust-by-example/cargo/deps.html)
|
||||
- [@official@Cargo](https://blog.rust-lang.org/2016/05/05/cargo-pillars.html)
|
||||
- [@official@Cargo](https://blog.rust-lang.org/2016/05/05/cargo-pillars.html)
|
||||
@@ -6,5 +6,5 @@ Visit the following resources to learn more:
|
||||
|
||||
- [@official@Diesel](https://diesel.rs/)
|
||||
- [@opensource@Repository](https://github.com/diesel-rs/diesel)
|
||||
- [@offiial@Docs.rs: Diesel](https://docs.rs/diesel/latest/diesel/)
|
||||
- [@video@Rust & SQL Databases (With Diesel)](https://www.youtube.com/watch?v=tRC4EIKhMzw)
|
||||
- [@article@Docs.rs: Diesel](https://docs.rs/diesel/latest/diesel/)
|
||||
- [@video@Rust & SQL Databases (With Diesel)](https://www.youtube.com/watch?v=tRC4EIKhMzw)
|
||||
@@ -5,4 +5,4 @@
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [@official@HALs - The Embedded Rust Book](https://doc.rust-lang.org/stable/embedded-book/design-patterns/hal/index.html)
|
||||
- [@opensource@A Hardware Abstraction Layer (HAL) for Embedded Systems](https://github.com/rust-embedded/embedded-hal)
|
||||
- [@opensource@A Hardware Abstraction Layer (HAL) for Embedded Systems](https://github.com/rust-embedded/embedded-hal)
|
||||
@@ -4,7 +4,7 @@ An enum, short for enumeration, is a custom data type that allows you to define
|
||||
|
||||
An instance of an `enum` can be one and only one of the enum's declared variants at any given time. Unlike enumerations in some other languages, variants in Rust are not restricted to a singular data type. When you define an `enum`, you can decide for each of its possible variants whether or not that variant will hold additional embedded data; each variant of the enum is also allowed to hold data of completely different types and amounts.
|
||||
|
||||
Learn more from the following resources:
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [@official@Defining an Enum](https://doc.rust-lang.org/book/ch06-01-defining-an-enum.html)
|
||||
- [@article@Understanding and Implementing Enums in Rust](https://towardsdev.com/understanding-and-implementing-enums-in-rust-6eae37b6b5e3)
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
Rust handles errors through `Result<T, E>` for operations that may fail and `Option<T>` for values that may be absent. `Result` has `Ok(T)` for success and `Err(E)` for errors, while `Option` has `Some(T)` and `None`. Pattern matching and the `?` operator enable elegant error handling and propagation. Rust doesn't use exceptions, eliminating many common error-handling problems.
|
||||
|
||||
Learn more from the following resources:
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [@official@Error Handling](https://doc.rust-lang.org/book/ch09-00-error-handling.html)
|
||||
- [@article@How to Handle Errors in Rust](https://dev.to/nathan20/how-to-handle-errors-in-rust-a-comprehensive-guide-1cco)
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
Explicit lifetime annotations use syntax like `'a` to specify relationships between reference lifetimes in function signatures. Required when the compiler can't infer lifetimes automatically. Example: `fn longest<'a>(x: &'a str, y: &'a str) -> &'a str` ensures all references live equally long.
|
||||
|
||||
Learn more from the following resources:
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [@official@Explicit Annotation](https://doc.rust-lang.org/rust-by-example/scope/lifetime/explicit.html)
|
||||
- [@article@What are Lifetimes in Rust? Explained with Code Examples](https://www.freecodecamp.org/news/what-are-lifetimes-in-rust-explained-with-code-examples/)
|
||||
@@ -4,8 +4,8 @@ In Rust, `floats` are a primitive data types used to represent floating-point nu
|
||||
|
||||
Rust supports two types of floating-point numbers: `f32` and `f64`. These are 32-bit and 64-bit in size, respectively.
|
||||
|
||||
- `f32` (_binary32_ type defined in IEEE-754-2008) is a single-precision float, which means is less precise than `f64` type.
|
||||
- `f64` (_binary64_ type defined in IEEE-754-2008) has double precision. The default type is `f64` because on modern CPUs it’s roughly the same speed as `f32` but allows more precision.
|
||||
* `f32` (_binary32_ type defined in IEEE-754-2008) is a single-precision float, which means is less precise than `f64` type.
|
||||
* `f64` (_binary64_ type defined in IEEE-754-2008) has double precision. The default type is `f64` because on modern CPUs it’s roughly the same speed as `f32` but allows more precision.
|
||||
|
||||
Both `f32` and `f64` represent negative, zero and positive floating-point values.
|
||||
|
||||
@@ -14,4 +14,4 @@ Visit the following resources to learn more:
|
||||
- [@official@f32](https://doc.rust-lang.org/std/primitive.f32.html)
|
||||
- [@article@IEEE-754 Standard](https://en.wikipedia.org/wiki/IEEE_754)
|
||||
- [@article@Floating-Point Types](https://rust-book.cs.brown.edu/ch03-02-data-types.html#floating-point-types)
|
||||
- [@video@Rust Tutorial - Floating-Points](https://www.youtube.com/watch?v=t047Hseyj_k&t=335s)
|
||||
- [@video@Rust Tutorial - Floating-Points](https://www.youtube.com/watch?v=t047Hseyj_k&t=335s)
|
||||
@@ -6,4 +6,4 @@ Visit the following resources to learn more:
|
||||
|
||||
- [@official@Generic Types, Traits, and Lifetimes](https://doc.rust-lang.org/book/ch10-00-generics.html)
|
||||
- [@official@Generics](https://doc.rust-lang.org/rust-by-example/generics.html)
|
||||
- [@official@Generics Data Type](https://doc.rust-lang.org/book/ch10-01-syntax.html)
|
||||
- [@official@Generics Data Type](https://doc.rust-lang.org/book/ch10-01-syntax.html)
|
||||
@@ -5,4 +5,4 @@
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [@official@ggez: Rust Game Thing](https://ggez.rs/)
|
||||
- [@article@2D Game Renderer in Rust](https://dev.to/trish_07/2d-game-renderer-in-rust-lets-make-a-mini-rpg-a9h)
|
||||
- [@article@2D Game Renderer in Rust](https://dev.to/trish_07/2d-game-renderer-in-rust-lets-make-a-mini-rpg-a9h)
|
||||
@@ -5,4 +5,4 @@
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [@official@Unlocking the GNOME stack for Rust](https://gtk-rs.org/)
|
||||
- [@opensource@gtk-rs/gtk4-rs: Rust Bindings of GTK 4](https://github.com/gtk-rs/gtk4-rs)
|
||||
- [@opensource@gtk-rs/gtk4-rs: Rust Bindings of GTK 4](https://github.com/gtk-rs/gtk4-rs)
|
||||
@@ -2,9 +2,9 @@
|
||||
|
||||
`HashMap<K, V>` stores key-value pairs using hashing for fast lookups, insertions, and removals. Keys must be unique; duplicate keys replace old values. Rust uses cryptographically strong hashing for security. Items are unordered. Example: `HashMap::new()` or `HashMap::from([("key", "value")])`.
|
||||
|
||||
Learn more from the following links:
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [@official@HashMap in std::collections](https://doc.rust-lang.org/std/collections/struct.HashMap.html)
|
||||
- [@official@Storing Keys With Associated Values In Hash Maps](https://doc.rust-lang.org/book/ch08-03-hash-maps.html?highlight=hashmap#storing-keys-with-associated-values-in-hash-maps)
|
||||
- [@article@Hash Table](https://en.wikipedia.org/wiki/Hash_table)
|
||||
- [@video@HashMaps: key-value stores in Rust](https://www.youtube.com/watch?v=BfmSYuDdg8Q)
|
||||
- [@video@HashMaps: key-value stores in Rust](https://www.youtube.com/watch?v=BfmSYuDdg8Q)
|
||||
@@ -2,8 +2,8 @@
|
||||
|
||||
`HashSet<T>` is a collection of unique elements using hash-based storage for fast lookups, insertions, and deletions. No duplicates are allowed and elements are unordered. Provides methods like `insert()`, `contains()`, and `remove()`. Example: `let mut set = HashSet::new(); set.insert("value");`
|
||||
|
||||
Learn more from the following links:
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [@official@HashSet in std::collections](https://doc.rust-lang.org/std/collections/struct.HashSet.html)
|
||||
- [@official@Hashset](https://doc.rust-lang.org/rust-by-example/std/hash/hashset.html)
|
||||
- [@video@Rust HashSet Collection Type](https://www.youtube.com/watch?v=KYw3Lnf0nSY&t=1440s)
|
||||
- [@video@Rust HashSet Collection Type](https://www.youtube.com/watch?v=KYw3Lnf0nSY&t=1440s)
|
||||
@@ -9,4 +9,4 @@ Visit the following resources to learn more:
|
||||
- [@official@Zed Editor](https://zed.dev)
|
||||
- [@official@Vim](https://www.vim.org)
|
||||
- [@official@Emacs](https://www.gnu.org/software/emacs/)
|
||||
- [@official@Sublime Text](https://www.sublimetext.com)
|
||||
- [@official@Sublime Text](https://www.sublimetext.com)
|
||||
@@ -6,4 +6,4 @@ Visit the following resources to learn more:
|
||||
|
||||
- [@official@Rust Programming Language](https://www.rust-lang.org)
|
||||
- [@official@Install Rust](https://www.rust-lang.org/tools/install)
|
||||
- [@official@Installation - The Rust Programming Language](https://doc.rust-lang.org/book/ch01-01-installation.html)
|
||||
- [@official@Installation - The Rust Programming Language](https://doc.rust-lang.org/book/ch01-01-installation.html)
|
||||
@@ -2,12 +2,12 @@
|
||||
|
||||
In Rust, integers are a primitive data type that hold whole number values, both positive and negative. Integer types in Rust can be divided into signed and unsigned ones:
|
||||
|
||||
- Signed integers, denoted by "i", are those that can hold negative, zero, and positive values.
|
||||
- Unsigned integers, denoted by "u", only hold zero and positive values.
|
||||
* Signed integers, denoted by "i", are those that can hold negative, zero, and positive values.
|
||||
* Unsigned integers, denoted by "u", only hold zero and positive values.
|
||||
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [@official@Integer Data Type in Rust](https://doc.rust-lang.org/book/ch03-02-data-types.html#integer-types)
|
||||
- [@official@Machine-dependent Integer Types](https://doc.rust-lang.org/reference/types/numeric.html#machine-dependent-integer-types)
|
||||
- [@article@Rust Data Types (With Examples)](https://www.programiz.com/rust/data-types#integer-type)
|
||||
- [@article@Integer Types](https://rust-book.cs.brown.edu/ch03-02-data-types.html#integer-types)
|
||||
- [@article@Integer Types](https://rust-book.cs.brown.edu/ch03-02-data-types.html#integer-types)
|
||||
@@ -7,4 +7,4 @@ Visit the following resources to learn more:
|
||||
- [@official@Rust Programming Language](https://www.rust-lang.org/)
|
||||
- [@official@Rust by Example](https://doc.rust-lang.org/stable/rust-by-example/index.html)
|
||||
- [@opensource@Rust Book](https://edu.anarcho-copy.org/Programming%20Languages/Rust/rust-programming-language-steve-klabnik.pdf)
|
||||
- [@opensource@Rust Book Interactive](https://rust-book.cs.brown.edu/experiment-intro.html)
|
||||
- [@opensource@Rust Book Interactive](https://rust-book.cs.brown.edu/experiment-intro.html)
|
||||
@@ -5,6 +5,6 @@ JSON handling in Rust primarily uses `serde` and `serde_json` libraries for high
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [@official@Serde](https://serde.rs/)
|
||||
- [@article@Docs.rs: JSON](https://docs.rs/json/latest/json/)
|
||||
- [@opensource@serde-rs/serde: Serialization framework for Rust](https://github.com/serde-rs/serde)
|
||||
- [@article@Docs.rs: JSON](https://docs.rs/json/latest/json/)
|
||||
- [@feed@Explore top posts about Rust](https://app.daily.dev/tags/rust?ref=roadmapsh)
|
||||
@@ -6,4 +6,4 @@ Visit the following resources to learn more:
|
||||
|
||||
- [@official@Home - Leptos](https://www.leptos.dev/)
|
||||
- [@official@Introduction - Leptos Documentation](https://book.leptos.dev/)
|
||||
- [@opensource@leptos-rs/leptos: Build fast web applications with Rust](https://github.com/leptos-rs/leptos)
|
||||
- [@opensource@leptos-rs/leptos: Build fast web applications with Rust](https://github.com/leptos-rs/leptos)
|
||||
@@ -5,4 +5,4 @@ Lifetime elision allows the compiler to infer lifetimes in common patterns, redu
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [@official@Lifetime Elision](https://doc.rust-lang.org/reference/lifetime-elision.html)
|
||||
- [@article@Understanding Lifetime Elision in Rust](https://masteringbackend.com/posts/understanding-lifetime-elision-in-rust)
|
||||
- [@article@Understanding Lifetime Elision in Rust](https://masteringbackend.com/posts/understanding-lifetime-elision-in-rust)
|
||||
@@ -6,4 +6,4 @@ Visit the following resources to learn more:
|
||||
|
||||
- [@official@Lifetimes](https://doc.rust-lang.org/rust-by-example/scope/lifetime.html)
|
||||
- [@article@Mastering Lifetimes in Rust: Memory Safety and Borrow Checking](https://leapcell.medium.com/mastering-lifetimes-in-rust-memory-safety-and-borrow-checking-4a8c082a54ee)
|
||||
- [@video@Crust of Rust: Lifetime Annotations](https://youtu.be/rAl-9HwD858)
|
||||
- [@video@Crust of Rust: Lifetime Annotations](https://youtu.be/rAl-9HwD858)
|
||||
@@ -5,4 +5,4 @@
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [@official@LinkedList in std::collections](https://doc.rust-lang.org/std/collections/struct.LinkedList.html)
|
||||
- [@article@Too Many Linked Lists](https://rust-unofficial.github.io/too-many-lists/)
|
||||
- [@article@Too Many Linked Lists](https://rust-unofficial.github.io/too-many-lists/)
|
||||
@@ -5,6 +5,6 @@ Macros are code that writes code, enabling metaprogramming in Rust. Declarative
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [@official@Macros](https://doc.rust-lang.org/book/ch20-05-macros.html)
|
||||
- [@official@macro_rules\!](https://doc.rust-lang.org/rust-by-example/macros.html)
|
||||
- [@official@macro_rules!](https://doc.rust-lang.org/rust-by-example/macros.html)
|
||||
- [@article@Macros in Rust: A Tutorial with Examples](https://blog.logrocket.com/macros-in-rust-a-tutorial-with-examples/)
|
||||
- [@article@Metaprogramming Magic in Rust: The Complete Guide](https://elitedev.in/rust/metaprogramming-magic-in-rust-the-complete-guide-/)
|
||||
@@ -6,6 +6,6 @@ Visit the following resources to learn more:
|
||||
|
||||
- [@article@Docs.rs: mockito](https://docs.rs/mockito/latest/mockito/)
|
||||
- [@article@Docs.rs: mockall](https://docs.rs/mockall/latest/mockall/)
|
||||
- [@article@Docs.rs: mockall\_double](https://docs.rs/mockall_double/latest/mockall_double/)
|
||||
- [@article@Docs.rs: mockall_double](https://docs.rs/mockall_double/latest/mockall_double/)
|
||||
- [@article@Mocking in Rust: Mockall and alternatives](https://blog.logrocket.com/mocking-rust-mockall-alternatives/)
|
||||
- [@feed@Explore top posts about Testing](https://app.daily.dev/tags/testing?ref=roadmapsh)
|
||||
@@ -4,8 +4,8 @@ Rust's `std::net` module provides networking primitives including `TcpStream`, `
|
||||
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [@official@std\:\:net](https://doc.rust-lang.org/std/net/)
|
||||
- [@official@std::net](https://doc.rust-lang.org/std/net/)
|
||||
- [@official@TcpListener](https://doc.rust-lang.org/std/net/struct.TcpListener.html)
|
||||
- [@official@UdpSocket](https://doc.rust-lang.org/std/net/struct.UdpSocket.html)
|
||||
- [@official@TcpStream](https://doc.rust-lang.org/std/net/struct.TcpStream.html)
|
||||
- [@article@Networking Fundamentals in Rust](https://medium.com/@murataslan1/networking-fundamentals-in-rust-525dcfbd5058)
|
||||
- [@article@Networking Fundamentals in Rust](https://medium.com/@murataslan1/networking-fundamentals-in-rust-525dcfbd5058)
|
||||
@@ -6,4 +6,4 @@ Visit the following resources to learn more:
|
||||
|
||||
- [@official@nRF-HAL — embedded dev in Rust](https://lib.rs/crates/nrf-hal)
|
||||
- [@opensource@nrf-rs/nrf-hal](https://github.com/nrf-rs/nrf-hal)
|
||||
- [@article@What the HAL? The Quest for Finding a Suitable Embedded Rust HAL](https://dev.to/theembeddedrustacean/what-the-hal-the-quest-for-finding-a-suitable-embedded-rust-hal-2i02)
|
||||
- [@article@What the HAL? The Quest for Finding a Suitable Embedded Rust HAL](https://dev.to/theembeddedrustacean/what-the-hal-the-quest-for-finding-a-suitable-embedded-rust-hal-2i02)
|
||||
@@ -7,4 +7,4 @@ Visit the following resources to learn more:
|
||||
- [@official@Option & unwrap](https://doc.rust-lang.org/rust-by-example/error/option_unwrap.html)
|
||||
- [@official@Result](https://doc.rust-lang.org/rust-by-example/error/result.html)
|
||||
- [@article@Error Handling in Rust - Andrew Gallant's Blog](https://burntsushi.net/rust-error-handling)
|
||||
- [@article@Using unwrap() in Rust is Okay - Andrew Gallant's Blog](https://burntsushi.net/unwrap/)
|
||||
- [@article@Using unwrap() in Rust is Okay - Andrew Gallant's Blog](https://burntsushi.net/unwrap/)
|
||||
@@ -0,0 +1,9 @@
|
||||
# Ownership Rules and Memory Safety
|
||||
|
||||
Rust's ownership has three key rules: each value has exactly one owner, only one owner exists at a time, and values are dropped when owners go out of scope. This prevents data races, ensures memory safety without garbage collection, and eliminates common bugs like use-after-free and memory leaks.
|
||||
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [@official@What is Ownership?](https://doc.rust-lang.org/book/ch04-01-what-is-ownership.html)
|
||||
- [@article@Rust Ownership & Borrowing - Memory Safety Without Garbage](https://webreference.com/rust/ownership/)
|
||||
- [@article@What Is Ownership?](https://rust-book.cs.brown.edu/ch04-01-what-is-ownership.html)
|
||||
@@ -7,4 +7,4 @@ Visit the following resources to learn more:
|
||||
- [@official@Patterns and Matching](https://doc.rust-lang.org/book/ch19-00-patterns.html)
|
||||
- [@official@Destructuring](https://doc.rust-lang.org/rust-by-example/flow_control/match/destructuring.html)
|
||||
- [@official@Matching](https://doc.rust-lang.org/rust-by-example/flow_control/match.html)
|
||||
- [@article@Control Flow with if let](https://rust-book.cs.brown.edu/ch06-03-if-let.html)
|
||||
- [@article@Control Flow with if let](https://rust-book.cs.brown.edu/ch06-03-if-let.html)
|
||||
@@ -6,4 +6,4 @@ Visit the following resources to learn more:
|
||||
|
||||
- [@article@Profiling - The Rust Performance Book](https://nnethercote.github.io/perf-book/profiling.html)
|
||||
- [@article@How to benchmark Rust code with Criterion](https://bencher.dev/learn/benchmarking/rust/criterion/)
|
||||
- [@article@Optimizing Rust Application Performance with Profiling](https://hemaks.org/posts/optimizing-rust-application-performance-with-profiling/)
|
||||
- [@article@Optimizing Rust Application Performance with Profiling](https://hemaks.org/posts/optimizing-rust-application-performance-with-profiling/)
|
||||
@@ -1,4 +1,4 @@
|
||||
# Propagating Errors and `?` Operator
|
||||
# Propagating Errors and ? Operator
|
||||
|
||||
The `?` operator provides concise error propagation in functions returning `Result` or `Option`. It automatically unwraps `Ok`/`Some` values or early-returns `Err`/`None` to the caller. This eliminates verbose `match` expressions and enables clean, readable error handling patterns.
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Publishing on crates.io
|
||||
|
||||
Publishing Rust crates involves creating an account on crates.io, preparing proper `Cargo.toml` metadata, and using `cargo publish`. Once published, versions cannot be deleted or overwritten, ensuring dependency stability. The registry serves as Rust's central package repository for sharing libraries.
|
||||
Publishing Rust crates involves creating an account on [crates.io](http://crates.io), preparing proper `Cargo.toml` metadata, and using `cargo publish`. Once published, versions cannot be deleted or overwritten, ensuring dependency stability. The registry serves as Rust's central package repository for sharing libraries.
|
||||
|
||||
Visit the following resources to learn more:
|
||||
|
||||
|
||||
@@ -5,5 +5,5 @@ Queue follows FIFO (First-In-First-Out) ordering where elements are added at one
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [@official@VecDeque in std::collections](https://doc.rust-lang.org/std/collections/struct.VecDeque.html)
|
||||
- [@article@Working with Queues in Rust](https://basillica.medium.com/working-with-queues-in-rust-5a5afe82da46)
|
||||
- [@official@Queues](https://docs.rs/queues/latest/queues/)
|
||||
- [@article@Working with Queues in Rust](https://basillica.medium.com/working-with-queues-in-rust-5a5afe82da46)
|
||||
@@ -4,6 +4,6 @@
|
||||
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [@opensource@quinn-rs/quinn: Async-friendly QUIC implementation in Rust](https://github.com/quinn-rs/quinn)
|
||||
- [@official@Quinn — Rust Network Library](https://lib.rs/crates/quinn)
|
||||
- [@opensource@quinn-rs/quinn: Async-friendly QUIC implementation in Rust](https://github.com/quinn-rs/quinn)
|
||||
- [@article@Quinn](https://docs.rs/quinn/latest/quinn/)
|
||||
@@ -4,5 +4,5 @@
|
||||
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [@official@Rc\<T\> in std::rc](https://doc.rust-lang.org/std/rc/struct.Rc.html)
|
||||
- [@official@Rc<T> in std::rc](https://doc.rust-lang.org/std/rc/struct.Rc.html)
|
||||
- [@official@rct - The Reference Counted Smart Pointer](https://doc.rust-lang.org/book/ch15-04-rc.html#rct-the-reference-counted-smart-pointer)
|
||||
@@ -6,4 +6,4 @@ Visit the following resources to learn more:
|
||||
|
||||
- [@article@Making HTTP requests in Rust with Reqwest](https://blog.logrocket.com/making-http-requests-rust-reqwest/)
|
||||
- [@article@Exploring Reqwest in Rust](https://medium.com/@chetanreddyk394/exploring-reqwest-in-rust-b91c548e69af)
|
||||
- [@article@Reqwest Documentation](https://docs.rs/reqwest/latest/reqwest/)
|
||||
- [@article@Reqwest Documentation](https://docs.rs/reqwest/latest/reqwest/)
|
||||
@@ -5,4 +5,4 @@
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [@opensource@briansmith/ring](https://github.com/briansmith/ring)
|
||||
- [@article@Ring](https://docs.rs/ring/latest/ring/)
|
||||
- [@article@Ring](https://docs.rs/ring/latest/ring/)
|
||||
@@ -4,6 +4,6 @@
|
||||
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [@article@Rusqlite](https://docs.rs/rusqlite/latest/rusqlite/)
|
||||
- [@opensource@rusqlite/rusqlite](https://github.com/rusqlite/rusqlite)
|
||||
- [@article@Rusqlite](https://docs.rs/rusqlite/latest/rusqlite/)
|
||||
- [@article@Rust | Sqlite Database](https://medium.com/@mikecode/rust-sqlite-database-rusqlite-162bad63fb5d)
|
||||
@@ -5,4 +5,4 @@
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [@official@Use rust-gdb and rust-lldb for Improved Debugging](https://users.rust-lang.org/t/use-rust-gdb-and-rust-lldb-for-improved-debugging-you-already-have-them/756)
|
||||
- [@article@Debugging Rust apps with GDB](https://blog.logrocket.com/debugging-rust-apps-with-gdb/)
|
||||
- [@article@Debugging Rust apps with GDB](https://blog.logrocket.com/debugging-rust-apps-with-gdb/)
|
||||
@@ -5,4 +5,4 @@
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [@official@RwLock](https://doc.rust-lang.org/std/sync/struct.RwLock.html)
|
||||
- [@article@Rust Read-Write Locks: Managing Concurrent Read and Write Access](https://medium.com/@TechSavvyScribe/rust-read-write-locks-managing-concurrent-read-and-write-access-a6ab689bbed3)
|
||||
- [@article@Rust Read-Write Locks: Managing Concurrent Read and Write Access](https://medium.com/@TechSavvyScribe/rust-read-write-locks-managing-concurrent-read-and-write-access-a6ab689bbed3)
|
||||
@@ -1,6 +1,6 @@
|
||||
# Serialization/Deserialization
|
||||
|
||||
Serialization converts Rust data structures into bytes for storage or transmission, while deserialization reverses the process. *Serde* is the standard framework with support for JSON, YAML, TOML, Binary, and more formats. Provides efficient, type-safe data conversion.
|
||||
Serialization converts Rust data structures into bytes for storage or transmission, while deserialization reverses the process. _Serde_ is the standard framework with support for JSON, YAML, TOML, Binary, and more formats. Provides efficient, type-safe data conversion.
|
||||
|
||||
Visit the following resources to learn more:
|
||||
|
||||
|
||||
@@ -5,5 +5,5 @@
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [@official@Smol - Gist of Rust](https://book.gist.rs/rust/r1/smol.html)
|
||||
- [@article@Smol Documentation](https://docs.rs/smol/latest/smol/)
|
||||
- [@opensource@smol-rs/smol: A small and fast async runtime for Rust](https://github.com/smol-rs/smol)
|
||||
- [@opensource@smol-rs/smol: A small and fast async runtime for Rust](https://github.com/smol-rs/smol)
|
||||
- [@article@Smol Documentation](https://docs.rs/smol/latest/smol/)
|
||||
@@ -6,4 +6,4 @@ Visit the following resources to learn more:
|
||||
|
||||
- [@official@Box, Stack and Heap](https://doc.rust-lang.org/rust-by-example/std/box.html)
|
||||
- [@official@std::collections](https://doc.rust-lang.org/std/collections/index.html)
|
||||
- [@article@Getting Started with SQLx and SQLite in Rust](https://medium.com/rustaceans/getting-started-with-sqlx-and-sqlite-in-rust-895ae7fc01ae)
|
||||
- [@article@Getting Started with SQLx and SQLite in Rust](https://medium.com/rustaceans/getting-started-with-sqlx-and-sqlite-in-rust-895ae7fc01ae)
|
||||
@@ -8,4 +8,4 @@ Visit the following resources to learn more:
|
||||
- [@official@str](https://doc.rust-lang.org/std/primitive.str.html)
|
||||
- [@official@What as a String?](https://doc.rust-lang.org/book/ch08-02-strings.html?highlight=String#what-is-a-string)
|
||||
- [@article@Rust String (With Examples)](https://www.programiz.com/rust/string)
|
||||
- [@video@All Rust string types explained](https://www.youtube.com/watch?v=CpvzeyzgQdw&pp=ygUOc3RyaW5nIGluIHJ1c3Q%3D)
|
||||
- [@video@All Rust string types explained](https://www.youtube.com/watch?v=CpvzeyzgQdw&pp=ygUOc3RyaW5nIGluIHJ1c3Q%3D)
|
||||
@@ -5,4 +5,4 @@
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [@official@Defining and Instantiating Structs](https://doc.rust-lang.org/book/ch05-01-defining-structs.html)
|
||||
- [@article@Parsing Command Line Args with StructOpt](https://www.tenderisthebyte.com/blog/2019/05/08/parsing-cli-args-with-structopt/)
|
||||
- [@article@Parsing Command Line Args with StructOpt](https://www.tenderisthebyte.com/blog/2019/05/08/parsing-cli-args-with-structopt/)
|
||||
@@ -5,4 +5,4 @@ In Rust, a struct is a custom data type used for grouping related values togethe
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [@official@Defining and Instantiating Structs](https://doc.rust-lang.org/book/ch05-01-defining-structs.html)
|
||||
- [@article@Understanding Structs in Rust: A Complete Guide with Examples](https://medium.com/@er.pwndhull07/understanding-structs-in-rust-a-complete-guide-with-examples-621bf9753b88)
|
||||
- [@article@Understanding Structs in Rust: A Complete Guide with Examples](https://medium.com/@er.pwndhull07/understanding-structs-in-rust-a-complete-guide-with-examples-621bf9753b88)
|
||||
@@ -7,4 +7,4 @@ Visit the following resources to learn more:
|
||||
- [@official@Writing Automated Tests](https://doc.rust-lang.org/book/ch11-01-writing-tests.html)
|
||||
- [@article@Testing in Rust: A Quick Guide to Unit Tests](https://dev.to/tramposo/testing-in-rust-a-quick-guide-to-unit-tests-integration-tests-and-benchmarks-2bah)
|
||||
- [@video@Mocking and Testing Rust](https://www.youtube.com/watch?v=8XaVlL3lObQ)
|
||||
- [@feed@Explore top posts about Testing](https://app.daily.dev/tags/testing?ref=roadmapsh)
|
||||
- [@feed@Explore top posts about Testing](https://app.daily.dev/tags/testing?ref=roadmapsh)
|
||||
@@ -7,4 +7,4 @@ Visit the following resources to learn more:
|
||||
- [@official@std::thread](https://doc.rust-lang.org/std/thread/)
|
||||
- [@official@Using Message Passing to Transfer Data Between Threads](https://doc.rust-lang.org/book/ch16-02-message-passing.html)
|
||||
- [@article@Understanding Threads in Rust: A Comprehensive Guide](https://blog.stackademic.com/understanding-threads-in-rust-a-comprehensive-guide-7e2d23fb85b0)
|
||||
- [@article@Rust Atomics and Locks - Low-Level Concurrency in Practice](https://marabos.nl/atomics/)
|
||||
- [@article@Rust Atomics and Locks - Low-Level Concurrency in Practice](https://marabos.nl/atomics/)
|
||||
@@ -5,4 +5,4 @@ Tokio is Rust's most popular async runtime for building fast, reliable network a
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [@official@Tokio](https://tokio.rs/)
|
||||
- [@article@Tokio Docs](https://docs.rs/tokio/latest/tokio/)
|
||||
- [@article@Tokio Docs](https://docs.rs/tokio/latest/tokio/)
|
||||
@@ -5,4 +5,4 @@
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [@official@TOML](https://docs.rs/toml/latest/toml/)
|
||||
- [@opensourcetoml-rs/toml-rs](https://github.com/toml-rs/toml-rs)
|
||||
- [@article@@opensourcetoml-rs/toml-rs](https://github.com/toml-rs/toml-rs)
|
||||
@@ -5,4 +5,4 @@ Trait bounds constrain generics by requiring types to implement specific traits
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [@official@Trait and Lifetime Bounds](https://doc.rust-lang.org/reference/trait-bounds.html)
|
||||
- [@article@Understanding Traits and Trait Bounds in Rust](https://leapcell.medium.com/understanding-traits-and-trait-bounds-in-rust-d575f19dd649)
|
||||
- [@article@Understanding Traits and Trait Bounds in Rust](https://leapcell.medium.com/understanding-traits-and-trait-bounds-in-rust-d575f19dd649)
|
||||
@@ -5,4 +5,4 @@ Traits define shared behavior as a set of method signatures that types can imple
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [@official@Traits](https://doc.rust-lang.org/rust-by-example/trait.html)
|
||||
- [@article@Understanding Traits and Trait Bounds in Rust](https://leapcell.medium.com/understanding-traits-and-trait-bounds-in-rust-d575f19dd649)
|
||||
- [@article@Understanding Traits and Trait Bounds in Rust](https://leapcell.medium.com/understanding-traits-and-trait-bounds-in-rust-d575f19dd649)
|
||||
@@ -4,4 +4,4 @@ Traits define shared behavior that types can implement, while generics enable co
|
||||
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [@official@Generic Types, Traits, and Lifetimes](https://doc.rust-lang.org/book/ch10-00-generics.html)
|
||||
- [@official@Generic Types, Traits, and Lifetimes](https://doc.rust-lang.org/book/ch10-00-generics.html)
|
||||
@@ -7,4 +7,4 @@ Traits are abstract; it's not possible to create instances of traits. However, w
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [@article@Traits: Defining Shared Behaviour](https://doc.rust-lang.org/book/ch10-02-traits.html)
|
||||
- [@article@Understanding Traits and Trait Bounds in Rust](https://leapcell.medium.com/understanding-traits-and-trait-bounds-in-rust-d575f19dd649)
|
||||
- [@article@Understanding Traits and Trait Bounds in Rust](https://leapcell.medium.com/understanding-traits-and-trait-bounds-in-rust-d575f19dd649)
|
||||
@@ -2,8 +2,8 @@
|
||||
|
||||
Tuples are fixed-size collections that can hold elements of different types. Access elements using dot notation with zero-based indexing: `tuple.0`, `tuple.1`, etc. Example: `let data: (i32, f64, char) = (42, 3.14, 'x');`. Useful for grouping related values of different types and multiple variable assignments.
|
||||
|
||||
Learn more from the following links:
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [@official@Tuple](https://doc.rust-lang.org/std/primitive.tuple.html)
|
||||
- [@article@The Tuple Type](https://rust-book.cs.brown.edu/ch03-02-data-types.html#the-tuple-type)
|
||||
- [@video@Rust Tutorial - Tuples](https://www.youtube.com/watch?v=t047Hseyj_k&t=506s)
|
||||
- [@video@Rust Tutorial - Tuples](https://www.youtube.com/watch?v=t047Hseyj_k&t=506s)
|
||||
@@ -6,4 +6,4 @@ Visit the following resources to learn more:
|
||||
|
||||
- [@official@Variables and Mutability](https://doc.rust-lang.org/book/ch03-01-variables-and-mutability.html)
|
||||
- [@official@Data Types](https://doc.rust-lang.org/book/ch03-02-data-types.html)
|
||||
- [@official@Constants](https://doc.rust-lang.org/rust-by-example/custom_types/constants.html)
|
||||
- [@official@Constants](https://doc.rust-lang.org/rust-by-example/custom_types/constants.html)
|
||||
@@ -8,4 +8,4 @@ Visit the following resources to learn more:
|
||||
- [@official@Storing Lists of Values with Vectors](https://doc.rust-lang.org/book/ch08-01-vectors.html?highlight=vector#storing-lists-of-values-with-vectors)
|
||||
- [@article@Rust Vector (With Examples)](https://www.programiz.com/rust/vector)
|
||||
- [@video@Rust Vectors](https://www.youtube.com/watch?v=nOKOFYzvvHo&t=97s&pp=ygUMcnVzdCB2ZWN0b3Jz)
|
||||
- [@video@Common Collections in Rust](https://www.youtube.com/watch?v=Zs-pS-egQSs&t=39s&pp=ygUMcnVzdCB2ZWN0b3Jz)
|
||||
- [@video@Common Collections in Rust](https://www.youtube.com/watch?v=Zs-pS-egQSs&t=39s&pp=ygUMcnVzdCB2ZWN0b3Jz)
|
||||
@@ -6,4 +6,4 @@ Visit the following resources to learn more:
|
||||
|
||||
- [@official@wasm-bindgen](https://docs.rs/wasm-bindgen/latest/wasm_bindgen/)
|
||||
- [@opensource@rustwasm/wasm-bindgen](https://github.com/rustwasm/wasm-bindgen)
|
||||
- [@article@Compiling from Rust to WebAssembly](https://developer.mozilla.org/en-US/docs/WebAssembly/Guides/Rust_to_Wasm)
|
||||
- [@article@Compiling from Rust to WebAssembly](https://developer.mozilla.org/en-US/docs/WebAssembly/Guides/Rust_to_Wasm)
|
||||
@@ -5,6 +5,6 @@
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [@official@wasm-pack](https://lib.rs/crates/wasm-pack)
|
||||
- [@article@Writing & Compiling WASM in Rust](https://www.shuttle.dev/blog/2024/03/06/writing-wasm-rust)
|
||||
- [@opensource@rustwasm/wasm-pack](https://github.com/rustwasm/wasm-pack)
|
||||
- [@article@Compiling from Rust to WebAssembly](https://developer.mozilla.org/en-US/docs/WebAssembly/Guides/Rust_to_Wasm)
|
||||
- [@article@Writing & Compiling WASM in Rust](https://www.shuttle.dev/blog/2024/03/06/writing-wasm-rust)
|
||||
- [@article@Compiling from Rust to WebAssembly](https://developer.mozilla.org/en-US/docs/WebAssembly/Guides/Rust_to_Wasm)
|
||||
@@ -5,7 +5,7 @@ Wasmer is a standalone WebAssembly runtime designed to run WASM files on any pla
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [@official@Embedding WebAssembly in your Rust Application](https://blog.wasmer.io/executing-webassembly-in-your-rust-application-d5cd32e8ce46)
|
||||
- [@opensource@wasmerio/wasmer](https://github.com/wasmerio/wasmer)
|
||||
- [@article@Wasmer — WebAssembly in Rust](https://lib.rs/crates/wasmer)
|
||||
- [@article@Writing & Compiling WASM in Rust](https://www.shuttle.dev/blog/2024/03/06/writing-wasm-rust)
|
||||
- [@opensource@wasmerio/wasmer](https://github.com/wasmerio/wasmer)
|
||||
- [@article@Compiling from Rust to WebAssembly](https://developer.mozilla.org/en-US/docs/WebAssembly/Guides/Rust_to_Wasm)
|
||||
- [@article@Compiling from Rust to WebAssembly](https://developer.mozilla.org/en-US/docs/WebAssembly/Guides/Rust_to_Wasm)
|
||||
@@ -6,4 +6,4 @@ Visit the following resources to learn more:
|
||||
|
||||
- [@official@Rocket - Simple, Fast, Type-Safe Web Framework for Rust](https://rocket.rs/)
|
||||
- [@article@Rust for Web Development: A Beginner's Guide](https://medium.com/@enravishjeni411/rust-for-web-development-a-beginners-guide-fcc994e5c090)
|
||||
- [@article@How to Write Your First Rust Web App with Rocket and RustRover](https://blog.jetbrains.com/rust/2024/02/28/how-to-write-your-first-rust-web-app-with-rocket-and-rustrover/)
|
||||
- [@article@How to Write Your First Rust Web App with Rocket and RustRover](https://blog.jetbrains.com/rust/2024/02/28/how-to-write-your-first-rust-web-app-with-rocket-and-rustrover/)
|
||||
@@ -5,7 +5,7 @@ WebAssembly is a binary instruction format that runs at near-native speed in web
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [@official@Embedding WebAssembly in your Rust Application](https://blog.wasmer.io/executing-webassembly-in-your-rust-application-d5cd32e8ce46)
|
||||
- [@article@Writing & Compiling WASM in Rust](https://www.shuttle.dev/blog/2024/03/06/writing-wasm-rust)
|
||||
- [@article@Compiling from Rust to WebAssembly](https://developer.mozilla.org/en-US/docs/WebAssembly/Guides/Rust_to_Wasm)
|
||||
- [@official@wasm-pack](https://lib.rs/crates/wasm-pack)
|
||||
- [@official@wasm-bindgen](https://docs.rs/wasm-bindgen/latest/wasm_bindgen/)
|
||||
- [@article@Writing & Compiling WASM in Rust](https://www.shuttle.dev/blog/2024/03/06/writing-wasm-rust)
|
||||
- [@article@Compiling from Rust to WebAssembly](https://developer.mozilla.org/en-US/docs/WebAssembly/Guides/Rust_to_Wasm)
|
||||
@@ -5,5 +5,5 @@
|
||||
Visit the following resources to learn more:
|
||||
|
||||
- [@official@wgpu: portable graphics library for Rust](https://wgpu.rs/)
|
||||
- [@article@wpgu docs](hhttps://docs.rs/wgpu/latest/wgpu/)
|
||||
- [@opensource@gfx-rs/wgpu](https://github.com/gfx-rs/wgpu)
|
||||
- [@opensource@gfx-rs/wgpu](https://github.com/gfx-rs/wgpu)
|
||||
- [@article@wpgu docs](hhttps://docs.rs/wgpu/latest/wgpu/)
|
||||
@@ -8,4 +8,4 @@ Visit the following resources to learn more:
|
||||
- [@official@Rust Programming Language](https://www.rust-lang.org/)
|
||||
- [@article@What is Rust and why is it so popular?](https://stackoverflow.blog/2020/01/20/what-is-rust-and-why-is-it-so-popular/)
|
||||
- [@video@What is Rust?](https://www.youtube.com/watch?v=R33h77nrMqc)
|
||||
- [@feed@Explore top posts about Rust](https://app.daily.dev/tags/rust?ref=roadmapsh)
|
||||
- [@feed@Explore top posts about Rust](https://app.daily.dev/tags/rust?ref=roadmapsh)
|
||||
@@ -8,5 +8,5 @@ Visit the following resources to learn more:
|
||||
- [@official@Rust Programming Language](https://www.rust-lang.org/)
|
||||
- [@video@What is Rust?](https://www.youtube.com/watch?v=R33h77nrMqc)
|
||||
- [@video@Convince your boss to use Rust](https://www.youtube.com/playlist?list=PLZaoyhMXgBzqkaLKR8HHWZaASMvW4gRtZ)
|
||||
- [@video@Rust in 100 seconds](https://www.youtube.com/watch?v=5C_HPTJg5ek\&pp=ygUNcnVzdCBmaXJlYmFzZQ%3D%3D)
|
||||
- [@feed@Explore top posts about Rust](https://app.daily.dev/tags/rust?ref=roadmapsh)
|
||||
- [@video@Rust in 100 seconds](https://www.youtube.com/watch?v=5C_HPTJg5ek&pp=ygUNcnVzdCBmaXJlYmFzZQ%3D%3D)
|
||||
- [@feed@Explore top posts about Rust](https://app.daily.dev/tags/rust?ref=roadmapsh)
|
||||
Reference in New Issue
Block a user