Как избежать копирования векторного фрагмента при возврате данных в web::Json?
Есть ли способ возврата городов в приведенном ниже коде, который бы не включал клонирование?
pub fn cities(
_req: HttpRequest,
info: web::Path<(String,)>,
data: web::Data<Arc<Mutex<DbData>>>,
) -> impl Responder {
let letters = &info.0;
println!("{}", letters);
let mut re = String::with_capacity(4 + letters.len());
re += "(?i)";
re += letters;
let re = Regex::new(&re).unwrap();
let db_data = data.lock().unwrap();
let cities: Vec<City> = db_data
.cities
.iter()
.filter(|c| re.is_match(&c.name))
.map(|c| c.clone())
.collect();
web::Json(cities)
}