use hello::*; fn main() { let sphere1 = Sphere::new(Point3::new(0.0, 0.0, 0.0), 25.0); let sphere2 = Sphere::new(Point3::new(1.0, -45.4, 3.55), 2.0); let sphere3 = Sphere::new(Point3::new(3.0, 2.0, 1.0), 0.5); let plane1 = Plane::new(Point3::new(1.0, 2.0, 3.0), Vector3::new(0.0, 1.0, 0.0)); let mut v = Vec::new(); v.push(Geometry::Sphere(sphere1)); v.push(Geometry::Plane(plane1)); v.push(Geometry::Sphere(sphere2)); v.push(Geometry::Sphere(sphere3)); for geo in v { match geo { Geometry::Sphere(s) => println!("A Sphere"), Geometry::Plane(p) => println!("A Plane"), Geometry::Line(l) => println!("A Line"), } } let mut lottery = [4, 8, 15, 16, 23, 42]; let mut sum = 0; for value in lottery { sum += value; } println!("The sum is {}", sum); let mut lottery_string = Vec::new(); for value in lottery { lottery_string.push(value.to_string()); } let lottery_string_2: Vec = lottery .iter() .filter(|x| **x > 8) .map(|x| x.to_string()) .collect(); }