# Rust by Example

Rust is a modern systems programming language focusing on safety, speed, and concurrency. It accomplishes these goals by being memory safe without using garbage collection.

Rust by Example (RBE) is a collection of runnable examples that illustrate various Rust concepts and standard libraries. To get even more out of these examples, don't forget to install Rust locally and check out the official docs. Additionally for the curious, you can also check out the source code for this site.

Now let's begin!

- Hello World - Start with a traditional Hello World program.

- Primitives - Learn about signed integers, unsigned integers and other primitives.

- Custom Types - `struct` and `enum`.

- Variable Bindings - mutable bindings, scope, shadowing.

- Types - Learn about changing and defining types.

- Conversion

- Expressions

- Flow Control - `if`/`else`, `for`, and others.

- Functions - Learn about Methods, Closures and High Order Functions.

- Modules - Organize code using modules

- Crates - A crate is a compilation unit in Rust. Learn to create a library.

- Attributes - An attribute is metadata applied to some module, crate or item.

- Generics - Learn about writing a function or data type which can work for multiple types of arguments.

- Scoping rules - Scopes play an important part in ownership, borrowing, and lifetimes.

- Traits - A trait is a collection of methods defined for an unknown type: `Self`

- Macros

- Error handling - Learn Rust way of handling failures.

- Std library types - Learn about some custom types provided by `std` library.

- Std misc - More custom types for file handling, threads.

- Testing - All sorts of testing in Rust.

- Unsafe Operations

- Compatibility

- Meta - Documentation, Benchmarking.