QuarkDoe

function and so on

Oct 25th, 2016
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Rust 0.67 KB | None | 0 0
  1. use std::mem;
  2.  
  3. type GenFnPtr<T> = fn(T);
  4.  
  5. struct Test<T, F: Fn(T)> {
  6.     f: F,
  7.     v: T,
  8. }
  9.  
  10.  
  11. fn f(_: i32) {}
  12.  
  13. //Ссылка на трейт-объект, ссылка на функцию и конкретная функция
  14. fn main() {
  15.  
  16.     //Ссылка на трейт-объект
  17.     let pto = &f as &Fn(_);
  18.     let t1 = Test{f: pto, v: 0};
  19.     println!("Sizeof t1 {}", mem::size_of_val(&t1));
  20.  
  21.     //Ссылка на функцию
  22.     let t2 = Test{f: f as GenFnPtr<_>, v: 0};
  23.     println!("Sizeof t2 {}", mem::size_of_val(&t2));
  24.  
  25.     //Конкретная функция
  26.     let t3 = Test{f: f, v:0};
  27.     println!("Sizeof t3 {}", mem::size_of_val(&t3));
  28. }
Advertisement
Add Comment
Please, Sign In to add comment