NewMeet CrodoTry it free on Mac →
Rust

Rust Typing Practice Chapters

150 exercises across 15 chapters, ordered from basic syntax to advanced patterns. Each section is real Rust code, and your best speed and accuracy are saved per section.

Basic Typing

0/11 completedBeginner

Start with simple Rust typing patterns

Let Statements

Simple Assignments

Mutable Variables

Type Annotations

Numeric Types

Compound Assignments

Simple Operations

Boolean Operations

Const Declarations

Static Declarations

Type Inference

Common Patterns

0/11 completedBeginner

Practice frequently used Rust patterns

Println Macro

Format Macro

String Basics

String Manipulation

Basic Functions

Function Calls

Debug Macro

Assert Macros

Panic Macro

Vec Macro

Macro Rules

Control Flow

0/10 completedBeginner

Master basic control flow syntax

If Expressions

Simple Loops

Match Expressions

Pattern Matching

Range Expressions

Loop Labels

While Let Loops

Advanced For Loops

Match Guards

Mixed Control Flow

Ownership & Borrowing

0/10 completedBeginner

Moves, references, slices, and the borrow checker

Move Semantics

Shared References

Mutable References

Slices

Ownership in Functions

Clone and Copy

Borrow Scopes

Deref Coercion

AsRef and Borrow

Mixed Ownership Practice

Function Patterns

0/10 completedBeginner

Common function syntax patterns

Function Basics

Function Parameters

Return Types

Multiple Returns

Generic Functions

Closures

Function Pointers

Associated Functions

Method Syntax

Function Composition

Struct Patterns

0/10 completedIntermediate

Common struct usage patterns

Struct Definition

Struct Instantiation

Struct Update Syntax

Tuple Structs

Struct Methods

Generic Structs

Derived Traits

Struct Patterns

Struct Visibility

Struct Composition

Enum Patterns

0/10 completedIntermediate

Common enum usage patterns

Enum Basics

Enums with Data

Enum Methods

Option Enum

Result Enum

Enum Matching

Generic Enums

Enum Constants

Enum Variant Patterns

Enum Conversion

Pattern Matching

0/10 completedIntermediate

match, if let, let else, and destructuring

Match Basics

Match Guards

if let

let else

Destructuring Structs

Destructuring Enums

@ Bindings

Slice Patterns

Nested Option and Result

Mixed Pattern Practice

Collection Patterns

0/9 completedIntermediate

Common collection usage patterns

Vectors

HashMaps

Strings

Binary Heaps

Linked Lists

BTree Maps

BTree Sets

Vec Deques

Hash Sets

Iterators & Closures

0/10 completedIntermediate

Adaptors, consumers, and closure captures

map, filter, collect

Closure Captures

fold and sum

enumerate and zip

chain, rev, take, skip

find, position, any, all

filter_map and flat_map

Custom Iterator

Returning impl Iterator

Mixed Iterator Practice

Error Handling

0/10 completedIntermediate

Common error handling patterns

Result Type

Option Type

Panic

Unwrap

Expect

Map and Then

Error Handling

Custom Errors

Result Combinators

Handling Multiple Errors

Trait Patterns

0/10 completedAdvanced

Common trait usage patterns

Trait Basics

Default Implementations

Trait Bounds

Trait Objects

Supertraits

Trait Aliases

Trait Implementations

Trait Conflicts

Trait Extensions

Trait Usage

Lifetime Patterns

0/10 completedAdvanced

Common lifetime annotation patterns

Lifetime Basics

Multiple Lifetimes

Lifetime Elision

Static Lifetime

Lifetime Bounds

Lifetime Annotations

Lifetime Variance

Lifetime Coercion

Lifetime Inference

Lifetime Usage

Modules & Std

0/9 completedIntermediate

Organising code and leaning on the standard library

mod, pub, and use

Option Combinators

HashMap Entry API

Box, Rc, and RefCell

Reading Files

Environment and Args

Derive Macros

String Methods

Mixed Std Practice

Concurrency

0/10 completedAdvanced

Threads, shared state, channels, and scoped threads

Spawn and Join

Move Closures

Arc and Mutex

Channels

Scoped Threads

RwLock

Atomics

Sleep and Duration

Collecting Thread Results

Mixed Concurrency Practice