Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- trait Avg {
- fn average(self) -> f64;
- }
- impl<'a, I, T, E> Avg for I
- where
- I: IntoIterator<Item=&'a T, IntoIter=E>,
- T: Into<u64> + Copy + 'a,
- E: ExactSizeIterator<Item=&'a T>,
- {
- fn average(self) -> f64 {
- let mut sum: u64 = 0;
- let iter = self.into_iter();
- let count = iter.len();
- for num in iter {
- sum += Into::<u64>::into(*num);
- }
- sum as f64 / count as f64
- }
- }
- fn main() {
- let v = vec![1u32, 2, 3];
- dbg!(v.average());
- dbg!([2u32, 3, 5, 8].average());
- dbg!(v);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement