types - 有没有办法表明 impl 特征类型也实现了额外的特征?

标签 types rust

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

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

有没有办法表明底层结构也实现了 Debug(通过 #[derive(...)]),这样我就可以格式化值?

最佳答案

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

use std::fmt::Debug;

trait Foo {}

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

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

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

关于types - 有没有办法表明 impl 特征类型也实现了额外的特征?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49263023/

相关文章:

Java - 用于物理计算的哪种数据类型?

multithreading - web::block() 失败并显示 "` NonNull<pq_sys::pg_conn >` cannot be shared between threads safely"

macros - Rust 宏可以创建新的标识符吗?

python - Mypy "class module"注解

sql - sql blob 和图像类型有什么区别

javascript - 为什么链接和脚本标签不作为元素输入?

regex - 如何在字节上使用 Rust 正则表达式(Vec<u8> 或 &[u8])?

在 where 子句中的 Haskell 类型映射(-> 运算符)?

rust - 折叠字符串以在rust中构建hashmap char计数器,但给出两阶段借用错误

input - 如何在 Rust 中读取用户输入?