Rust 在函数体上具有生存期的泛型值上迭代时,借用值的生存期不够长

Rust 在函数体上具有生存期的泛型值上迭代时,借用值的生存期不够长,rust,lifetime,Rust,Lifetime,约束String:FromSo在将成员收集到s中后,是否要使用arg?否则我会说使用到iter中,一切都完成了。 fn func<'a, T>(arg: Vec<Box<T>>) where String: From<&'a T>, T: 'a, { let s: Vec<String> = arg.iter().map(|s| String::from(s)).collect(); do_som

约束
String:FromSo在将成员收集到
s
中后,是否要使用
arg
?否则我会说使用
到iter
中,一切都完成了。
fn func<'a, T>(arg: Vec<Box<T>>)
where
    String: From<&'a T>,
    T: 'a,
{
    let s: Vec<String> = arg.iter().map(|s| String::from(s)).collect();
    do_something_else(arg);
}

fn do_something_else<T>(arg: Vec<Box<T>>) {}
fn func<T>(arg: Vec<Box<T>>)
where
    for<'a> String: From<&'a T>,
{
    let s: Vec<String> = arg.iter().map(|s| String::from(s)).collect();
    do_something_else(arg);
}
fn func<T>(arg: Vec<Box<T>>)
where
    T: Display,
{
    let _: Vec<_> = arg.iter().map(|s| s.to_string()).collect();
    // ...
}