Rust typing test
Borrows, lifetimes, and the punctuation-dense ownership model.
Characters that slow you down in Rust
&Shift-7 for borrows; mutable borrows make it a constant prefix.::Path separator, doubled and shifted, on every use statement.'Lifetimes put an apostrophe directly in front of an identifier.->Return types on nearly every signature.=>Match arms, several per expression.
The ampersand becomes a prefix
In most languages the ampersand is occasional. In Rust it prefixes arguments, types and expressions constantly. It is shift-7, a left-hand number-row reach, and it arrives immediately before an identifier so there is no pause to recover in.
The mutable-borrow prefix is worth drilling as a single unit. It is five keystrokes including the space, it appears everywhere, and typing it as one gesture rather than four decisions makes a noticeable difference.
Lifetimes use a character nothing else does
A lifetime annotation puts an apostrophe directly against a letter inside angle brackets. No other common language does this, so there is no transferable muscle memory — in prose the apostrophe is followed by a space or a letter, never opened and left unclosed.
Typists fluent in every other language still fumble lifetimes, and the reason is that the shape is unfamiliar rather than difficult. A few minutes of deliberate practice fixes it faster than most weak keys.
Match arms chain arrows
A match expression puts a fat arrow on every arm, often four or five in a row, separated by patterns full of capitalised variant names that each need a shift.
The rhythm of a match block is therefore shift-heavy and highly regular. It is excellent material for practising the opposite-hand shift habit, because the capitals arrive predictably rather than at random.
The question mark is doing real work
The try operator after a fallible call is idiomatic Rust, and it lands at the end of an expression right before a semicolon. That is shift-slash immediately followed by an unshifted semicolon on the same hand.
It is a small movement but a frequent one, and getting it wrong produces a compile error rather than a silent bug. Practising that closing tail is worth as much as any single character in the language.
Frequently asked questions
- Why is Rust harder to type than other languages?
- Punctuation carries meaning that other languages express in words. Borrows, lifetimes, paths and the try operator all add symbols, so a Rust line has more distinct characters than an equivalent line elsewhere.
- What is the hardest part of typing Rust?
- Lifetimes. Placing an apostrophe against a letter inside angle brackets is a shape that appears in no other common language, so there is no existing muscle memory to draw on.
- Which Rust sequences are worth drilling?
- The mutable-borrow prefix, the try-operator tail before a semicolon, and the path separator in use statements. All three are frequent enough that treating them as single gestures pays back quickly.