Advertisement
Guest User

Untitled

a guest
Oct 19th, 2019
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.69 KB | None | 0 0
  1. #![feature(unboxed_closures)]
  2. #![feature(fn_traits)]
  3.  
  4. struct Adder;
  5.  
  6. impl FnOnce<(i32, i32)> for Adder {
  7. type Output = i32;
  8. extern "rust-call" fn call_once(self, args: (i32, i32)) -> i32 {
  9. args.0 + args.1
  10. }
  11. }
  12.  
  13. impl FnOnce<(f32, f32)> for Adder {
  14. type Output = f32;
  15. extern "rust-call" fn call_once(self, args: (f32, f32)) -> f32 {
  16. args.0 + args.1
  17. }
  18. }
  19.  
  20. impl FnOnce<(f64, f64)> for Adder {
  21. type Output = f64;
  22. extern "rust-call" fn call_once(self, args: (f64, f64)) -> f64 {
  23. args.0 + args.1
  24. }
  25. }
  26.  
  27. fn main() {
  28. // let adder = Adder{};
  29. println!("{}", Adder{}(4, 3));
  30. println!("{}", Adder{}(4.2_f32, 3.1_f32));
  31. println!("{}", Adder{}(4.2, 3.1));
  32. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement