Note that this is (apparently) one of those places where making a new closure can simplify things:
fn find_entities<F>(entities: &Vec<Entity>, f: F) -> Vec<Entity>
where F: Fn(&Entity) -> bool
{
entities.iter()
.filter(|x| f(x))
.cloned()
.collect()
}