Great example, thank you! I found I had to call button.enable_interrupt().unwrap() inside the loop, or I'd only get precisely one interrupt. This is noted in the most recent docs for subscribe() where they note that you must call it from non-ISR context.