Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- fn do_it(initial_state: i32) -> (Box<Fn() -> i32>, Box<FnMut(&str)>) {
- let mut internal_state = initial_state;
- let get_state = Box::new(move || internal_state);
- let update = Box::new(|input: &str| internal_state = input.len() as i32);
- (get_state, update)
- }
- fn main() {
- let (get_state, mut update) = do_it(0);
- println!("{}", get_state());
- update("hello");
- println!("{}", get_state());
- }
Add Comment
Please, Sign In to add comment