extern crate interesting; fn main() { // function pointer case let fns: Vec<_> = std::iter::repeat(interesting::function_called_always as fn()) .take(1000) .collect(); interesting::call_a_bunch_of_functions(&fns[..]); // Trait object case let trait_objects = vec![0u32; 1000]; let trait_objects: Vec<_> = trait_objects.iter().map(|x| x as &dyn interesting::Foo).collect(); interesting::call_a_bunch_of_trait_methods(&trait_objects[..]); }