m14-mental-model

Use when learning Rust concepts. Keywords: mental model, how to think about ownership, understanding borrow checker, visualizing memory layout, analogy,…

INSTALLATION
npx skills add https://github.com/actionbook/rust-skills --skill m14-mental-model
Run in your project or agent environment. Adjust flags if your CLI version differs.

SKILL.md

Mental Models

Layer 2: Design Choices

Core Question

What's the right way to think about this Rust concept?

When learning or explaining Rust:

  • What's the correct mental model?
  • What misconceptions should be avoided?
  • What analogies help understanding?

Key Mental Models

ConceptMental ModelAnalogy
OwnershipUnique keyOnly one person has the house key
MoveKey handoverGiving away your key
&TLending for readingLending a book
&mut TExclusive editingOnly you can edit the doc
Lifetime 'aValid scope"Ticket valid until..."
Box Heap pointerRemote control to TV
Rc Shared ownershipMultiple remotes, last turns off
Arc Thread-safe RcRemotes from any room

Coming From Other Languages

FromKey Shift
Java/C#Values are owned, not references by default
C/C++Compiler enforces safety rules
Python/GoNo GC, deterministic destruction
FunctionalMutability is safe via ownership
JavaScriptNo null, use Option instead

Thinking Prompt

When confused about Rust:

-

What's the ownership model?

  • Who owns this data?
  • How long does it live?
  • Who can access it?

-

What guarantee is Rust providing?

  • No data races
  • No dangling pointers
  • No use-after-free

-

What's the compiler telling me?

  • Error = violation of safety rule
  • Solution = work with the rules

Trace Up ↑

To design understanding (Layer 2):

"Why can't I do X in Rust?"

    ↑ Ask: What safety guarantee would be violated?

    ↑ Check: m01-m07 for the rule being enforced

    ↑ Ask: What's the intended design pattern?

Trace Down ↓

To implementation (Layer 1):

"I understand the concept, now how do I implement?"

    ↓ m01-ownership: Ownership patterns

    ↓ m02-resource: Smart pointer choice

    ↓ m07-concurrency: Thread safety

Common Misconceptions

ErrorWrong ModelCorrect Model
E0382 use after moveGC cleans upOwnership = unique key transfer
E0502 borrow conflictMultiple writers OKOnly one writer at a time
E0499 multiple mut borrowsAliased mutationExclusive access for mutation
E0106 missing lifetimeIgnoring scopeReferences have validity scope
E0507 cannot move from &TImplicit cloneReferences don't own data

Deprecated Thinking

DeprecatedBetter
"Rust is like C++"Different ownership model
"Lifetimes are GC"Compile-time validity scope
"Clone solves everything"Restructure ownership
"Fight the borrow checker"Work with the compiler
"unsafe to avoid rules"Understand safe patterns first

Ownership Visualization

Stack                          Heap

+----------------+            +----------------+

| main()         |            |                |

|   s1 ─────────────────────> │ "hello"        |

|                |            |                |

| fn takes(s) {  |            |                |

|   s2 (moved) ─────────────> │ "hello"        |

| }              |            | (s1 invalid)   |

+----------------+            +----------------+

After move: s1 is no longer valid

Reference Visualization

+----------------+

| data: String   |────────────> "hello"

+----------------+

       ↑

       │ &data (immutable borrow)

       │

+------+------+

| reader1    reader2    (multiple OK)

+------+------+

+----------------+

| data: String   |────────────> "hello"

+----------------+

       ↑

       │ &mut data (mutable borrow)

       │

+------+

| writer (only one)

+------+

Learning Path

StageFocusSkills
BeginnerOwnership basicsm01-ownership, m14-mental-model
IntermediateSmart pointers, error handlingm02, m06
AdvancedConcurrency, unsafem07, unsafe-checker
ExpertDesign patternsm09-m15, domain-*

Related Skills

WhenSee
Ownership errorsm01-ownership
Smart pointersm02-resource
Concurrencym07-concurrency
Anti-patternsm15-anti-pattern
BrowserAct

Let your agent run on any real-world website

Bypass CAPTCHA & anti-bot for free. Start local, scale to cloud.

Explore BrowserAct Skills →

Stop writing automation&scrapers

Install the CLI. Run your first Skill in 30 seconds. Scale when you're ready.

Start free
free · no credit card