Guest User

Untitled

a guest
Aug 16th, 2018
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.41 KB | None | 0 0
  1. fn do_it(initial_state: i32) -> (Box<Fn() -> i32>, Box<FnMut(&str)>) {
  2. let mut internal_state = initial_state;
  3.  
  4. let get_state = Box::new(move || internal_state);
  5.  
  6. let update = Box::new(|input: &str| internal_state = input.len() as i32);
  7.  
  8. (get_state, update)
  9. }
  10.  
  11. fn main() {
  12. let (get_state, mut update) = do_it(0);
  13. println!("{}", get_state());
  14. update("hello");
  15. println!("{}", get_state());
  16. }
Add Comment
Please, Sign In to add comment