Resources to learn Rust:

To encourage ergonomic Rust, run clippy.

Best Practices

Traits

Traits definitions are function signatures from types to types. Trait type parameters represent inputs and associated types represent outputs. Trait implementations define individual mappings from inputs to outputs.

Type-Level Programming in Rust

Macros

Unsafe

General Advice

Find small projects to learn new concepts in isolation. Here are two examples that teach you to read/write to the filesystem:

  • CLI to encrypt/decrypt files
  • CLI to encrypt a file and split it up into shares (that can be recombined and decrypted to get the original file)