Types 有没有一种方法可以表明impl-trait类型也实现了其他特征?

Types 有没有一种方法可以表明impl-trait类型也实现了其他特征?,types,rust,Types,Rust,我有一个返回impl trait的函数: pub fn new(buf: &[u8]) -> Result<impl Temperature, u8> pub fn new(buf:&u8])->结果 是否有一种方法可以表明基础结构也实现了调试(通过#[派生(…)]),这样我就可以格式化值?是的,将多个特征与+组合,就像在特征边界中一样: use std::fmt::Debug; trait Foo {} fn new() -> impl Foo + De

我有一个返回impl trait的函数:

pub fn new(buf: &[u8]) -> Result<impl Temperature, u8>
pub fn new(buf:&u8])->结果

是否有一种方法可以表明基础结构也实现了
调试
(通过
#[派生(…)]
),这样我就可以格式化值?

是的,将多个特征与
+
组合,就像在特征边界中一样:

use std::fmt::Debug;

trait Foo {}

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

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

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

是的,将多个特征与
+
组合,就像在特征边界中一样:

use std::fmt::Debug;

trait Foo {}

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

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

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

谢谢。有没有一种方法可以给一组特征取一个名字?简言之:我能退回“蛋糕”而不是“面团+巧克力”吗?是的。再见,谢谢。有没有一种方法可以给一组特征取一个名字?简言之:我能退回“蛋糕”而不是“面团+巧克力”吗?是的。看