Guest User

Untitled

a guest
Oct 17th, 2018
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.35 KB | None | 0 0
  1. trait MyFn<T> {
  2. fn call(self: Box<Self>, arg: &mut T);
  3. }
  4.  
  5. impl<T, F: FnOnce(&mut T)> MyFn<T> for F {
  6. fn call(self: Box<Self>, arg: &mut T) {
  7. let this: Self = *self;
  8. this(arg)
  9. }
  10. }
  11.  
  12. fn main() {
  13. let f: Box<MyFn<i32>> = Box::new(|arg: &mut i32| {
  14. println!("Argument: {}", arg);
  15. });
  16. let mut i = 10;
  17. f.call(&mut i);
  18. }
Add Comment
Please, Sign In to add comment