Advertisement
Guest User

Untitled

a guest
Dec 7th, 2016
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.05 KB | None | 0 0
  1. fn main() {
  2. let a = (1i32..10).sum();
  3. let b = a.pow(2);
  4. }
  5.  
  6. fn sum<S>(self) -> S
  7. where S: Sum<Self::Item>
  8.  
  9. impl Sum<i8> for i8
  10. impl<'a> Sum<&'a i8> for i8
  11.  
  12. #[derive(Debug, Copy, Clone)]
  13. struct Points(i32);
  14.  
  15. impl std::iter::Sum<u8> for Points {
  16. fn sum<I>(iter: I) -> Points
  17. where I: Iterator<Item = u8>
  18. {
  19. let mut pts = Points(0);
  20. for v in iter {
  21. pts.0 += v as i32;
  22. }
  23. pts
  24. }
  25. }
  26.  
  27. fn main() {
  28. let total: Points = (0u8..42u8).sum();
  29. println!("{:?}", total);
  30. }
  31.  
  32. #[derive(Clone,Copy)]
  33. struct Summer {
  34. s: isize,
  35. }
  36.  
  37. impl Summer {
  38. fn pow(&self, p: isize) {
  39. println!("pow({})", p);
  40. }
  41. }
  42.  
  43. impl std::iter::Sum<i32> for Summer {
  44. fn sum<I>(iter: I) -> Self
  45. where I: Iterator<Item=i32>
  46. {
  47. let mut result = 0isize;
  48. for v in iter {
  49. result += v as isize;
  50. }
  51. Summer{ s: result }
  52. }
  53. }
  54.  
  55. fn main() {
  56. let a1:i32 = (1i32..10).sum();
  57. let a2:Summer = (1i32..10).sum();
  58. let b1 = a1.pow(2);
  59. let b2 = a2.pow(2);
  60. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement