Kuest AI

Study anything, free

Start free

Learn Rust 10x faster with AI

Ownership, borrowing and lifetimes made clear. Paste the borrow checker error and Kuest helps you understand what it's protecting you from.

4.87en iOS13,917,000+estudiantes ya estudian con Kuest

topics
10
Version 1.0
Released 2015
Type
Compiled, statically typed
Known for
Memory safety without a garbage collector

See how Kuest teaches it

It asks before it tells, so you do the thinking and it sticks.

You: let s1 = String::from("hi"); let s2 = s1; println!("{}", s1); gives "borrow of moved value: s1". Why?
Kuest: In Rust every value has exactly one owner. After let s2 = s1;, who do you think owns the String?
You: I assumed both did, like copying in Python.
Kuest: That's the key difference. For a String, the assignment moves ownership to s2. If s1 still owned it too, what would happen when both went out of scope?
You: Both would try to free the same memory. So Rust makes s1 invalid after the move.
Kuest: Exactly. If you really need two separate strings, what could you write instead?
You: let s2 = s1.clone(); to make a real copy, or let s2 = &s1; if I only need to borrow it.

Assigning a String moves ownership; clone() makes a copy and & borrows it without moving.

Students who lock in with Kuest

students
13,917,000+
App Store rating
4.87
countries
100+
  • From a C to an A in chem

    “I stopped copying answers and started actually getting it. My chem grade went from a C to an A in one semester.”

    Junior, Texas
  • 3 hours → 40 minutes

    “My notes turn into a quiz in seconds. What used to take me all night now takes one episode of a show.”

    Sophomore, California
  • Finally ready for the SAT

    “The plan told me exactly what to do each day. I walked in calm for the first time ever.”

    Senior, New York
  • It never lets me skip a step

    “Annoying at first, lifesaver on test day. I could do every problem without it.”

    Freshman, Ohio
  • Better than my tutor

    “It's there at midnight, it's patient, and it costs less than one session with my old tutor.”

    College freshman, Florida
  • My streak is at 94 days

    “The quests are ten minutes. I do them on the bus. Somehow I'm now the one explaining bio to my friends.”

    Junior, Illinois
  • Spanish finally clicked

    “Talking out loud with the tutor fixed my pronunciation faster than a whole year of class.”

    Sophomore, Arizona
  • Found my gaps in one night

    “The gap check showed me I'd never understood moles. Fixed it in 15 minutes.”

    Junior, Georgia
  • Parent here: no more 9pm meltdowns

    “My son gets real help without me pretending I remember calculus, and I can see his progress every week.”

    Parent, Washington

The method

How to study Rust with Kuest

Rust's compiler is strict, and its error messages are part of how you learn. Read each one fully, ask what rule it's enforcing, and draw who owns what. Ownership and borrowing click through many small examples spread over days, not one long session.

  1. Understand the rulesTutor chat

    Ask about ownership, borrowing or Option and answer Kuest's check questions before moving on.

  2. Read the borrow checkerSnap a photo

    Paste your code and the compiler error, or snap your screen, and Kuest helps you see which rule it's enforcing.

  3. Draw ownershipTeaching board

    See owners, borrows and scopes drawn on the teaching board so moves and lifetimes make sense.

  4. Will it compile?Quizzes

    Answer quizzes that show a snippet and ask whether it compiles, and if not, why.

  5. Keep the patterns handyFlashcards

    Review Option and Result methods, trait syntax and common borrow patterns as spaced flashcards.

  6. Focus on sticking pointsGap finder

    Let Kuest find what keeps tripping you, like lifetimes or &mut, and practice just that.

What you'll cover

Tap a topic to learn it now.

  1. 01Cargo and the basicsCreate a project with cargo new and use let, mut and basic types
  2. 02Control flow and functionsUse if, loop, while and for, and return values from expressions
  3. 03Ownership and movesPredict when a value moves and why the old variable can't be used
  4. 04Borrowing and referencesUse & and &mut and follow the one-writer-or-many-readers rule
  5. 05Strings, slices and collectionsChoose between String and &str and use Vec and HashMap
  6. 06Structs and enumsModel data with structs and enums and add methods with impl
  7. 07Pattern matchingHandle every case with match, if let and Option<T>
  8. 08Error handlingReturn Result<T, E> and propagate errors with the ? operator
  9. 09Traits and genericsShare behavior with traits and write generic functions with bounds
  10. 10LifetimesRead lifetime annotations and explain why a reference can't outlive its data

Try asking

Tap a question and Kuest starts teaching it, step by step.

Helps you prepare for

  • Systems programming courses
  • Project and open source work

A month of Kuest costs less than one hour with a tutor

Same patience, any hour, every subject. Or stay on the free plan for good.

Private tutor

$40–80for one hour

  • Booked days in advance
  • One subject per session
  • Stops when the hour ends

Kuest Plus

$10a month, billed yearly

  • Every subject and exam on this site
  • Any hour, as long as you need
  • Quizzes, flashcards, podcasts and mock exams

Study on any device

Phone, tablet or laptop. Your chats, plans and flashcards come with you.

Questions, answered

Your next study session starts here

Free forever plan. No card needed.

Start free