Try to use the borrow checker of this decade to write callbacks in GUI frameworks, without polluting the code with Rc and RefCell, even though it is obvious there is only one path to the data being used.
(You can also often get away with Cell rather than RefCell.)
How come, when you have a struct method, accessing field members only visible to that specific method.
Something that is very easy to do with moving in lambda contexts in C++.
It is related to closure desugaring.
https://github.com/nikomatsakis/nll-rfc/blob/master/0000-non...
You can alternatively move the struct or its fields into the closure, but then you lose the first path. I know you're not doing that because if you were you wouldn't be having lifetime problems (and you wouldn't be able to share the state across event handlers, so it's not a great solution anyway).