diff --git a/src/0_1_2_generators_pin.md b/src/0_1_2_generators_pin.md index 89772b9..09e16d5 100644 --- a/src/0_1_2_generators_pin.md +++ b/src/0_1_2_generators_pin.md @@ -353,9 +353,9 @@ But now, let's prevent the segfault from happening using `Pin`: #![feature(optin_builtin_traits)] use std::pin::Pin; -pub fn test2() { - let mut gen1 = GeneratorA::start(); - let mut gen2 = GeneratorA::start(); +pub fn main() { + let gen1 = GeneratorA::start(); + let gen2 = GeneratorA::start(); // Before we pin the pointers, this is safe to do // std::mem::swap(&mut gen, &mut gen2); @@ -402,7 +402,7 @@ enum GeneratorState { trait Generator { type Yield; type Return; - fn resume(mut self: Pin<&mut Self>) -> GeneratorState; + fn resume(self: Pin<&mut Self>) -> GeneratorState; } enum GeneratorA { @@ -429,7 +429,7 @@ impl !Unpin for GeneratorA { } impl Generator for GeneratorA { type Yield = usize; type Return = (); - fn resume(mut self: Pin<&mut Self>) -> GeneratorState { + fn resume(self: Pin<&mut Self>) -> GeneratorState { // lets us get ownership over current state let this = unsafe { self.get_unchecked_mut() }; match this {