Chapter 2: Advanced Notes - Inplace Notes — Demo Book

## Keyboard shortcuts

Press `←` or `→` to navigate between chapters

Press `S` or `/` to search in the book

Press `?` to show this help

Press `Esc` to hide this help

# Chapter 1something 2: Advanced Notes

This chapter covers more complex note content.

## Notes with code blocks

The `Iterator` trait

2

    #![allow(unused)]
    fn main() {
    pub trait Iterator {
        type Item;
        fn next(&mut self) -> Option<Self::Item>;
    }
    }

The heart of Rust's iterator system — just one required method.

powers Rust’s functional programming patterns.

## Notes with lists

Error handling in Rust

3

Common patterns:

- Recoverable: `Result<T, E>` with `?` operator
- Unrecoverable: `panic!` macro
- Optional values: `Option<T>` with `?` operator (in functions returning `Option`)

Choose the right tool for the situation.

is versatile and explicit.

## Notes with blockquotes

The module system

4

> Modules let you organize code within a crate into groups for readability and reuse. They also control the privacy of items: public, private, or `pub(crate)`.

See The Book.

helps organize large codebases.

## Notes with inline code and links

Clippy5Run `cargo clippy` to get lint suggestions. Configure with `#[allow(clippy::some_lint)]` attributes. See the Clippy Lints page. catches common mistakes.

## Notes with tables

Rust edition differences

6

Edition | Year | Key Feature
--- | --- | ---
2015 | 2015 | Original
2018 | 2018 | NLL, `dyn Trait`
2021 | 2021 | Closure captures
2024 | 2024 | `gen` blocks

can trip up newcomers.