有没有办法表明impl trait类型还实现了额外的特征?

时间:2018-03-13 18:08:20

标签: types rust

我有一个返回impl特征的函数:

Debug

有没有办法表明底层结构还实现了#[derive(...)](通过{{1}}),所以我可以格式化值?

1 个答案:

答案 0 :(得分:4)

是的,将多个特征与+结合起来,就像在特征界限中一样:

use std::fmt::Debug;

trait Foo {}

fn new() -> impl Foo + Debug {
    Dummy
}

#[derive(Debug)]
struct Dummy;
impl Foo for Dummy {}

fn main() {
    println!("{:?}", new());
}