Rust 具有特征边界的泛型结构字段

Rust 具有特征边界的泛型结构字段,rust,Rust,我正在尝试实现一个结构,其中包含一个具有特征边界的泛型字段。我希望将值Group.admin设置为可打印。它的确切类型并不重要 struct Group<T: Printable> { admin: T, } struct Person { name: String, } impl Person { fn new() -> Person { Person { name: String::from("Bob"),

我正在尝试实现一个结构,其中包含一个具有特征边界的泛型字段。我希望将值
Group.admin
设置为
可打印
。它的确切类型并不重要

struct Group<T: Printable> {
    admin: T,
}

struct Person {
    name: String,
}

impl Person {
    fn new() -> Person {
        Person {
            name: String::from("Bob"),
        }
    }
}

trait Printable {
    fn print(&self);
}

impl Printable for Person {
    fn print(&self) {
        println!("{}", self.name);
    }
}

fn group_test<T: Printable>() -> Group<T> {
    Group {
        admin: Person::new(),
    }
}

我不确定这里出了什么问题。也许我必须以某种方式将
Person::new()
的值转换为

group\u test函数不是泛型函数,它应该返回一个
,而是返回一个

这包括:

fn group_test() -> Group<Person> {
    Group {
        admin: Person::new(),
    }
}
fn组\u测试()->组{
团体{
管理员:Person::new(),
}
}
这还将汇编:

fn group_test<T: Printable>(printable: T) -> Group<T> {
    Group {
        admin: printable,
    }
}
fn组\u测试(可打印:T)->组{
团体{
管理员:可打印,
}
}