gpt4 book ai didi

rust - 如何为具有特征对象成员的结构实现调试特征?

转载 作者:行者123 更新时间:2023-11-29 08:28:54 25 4
gpt4 key购买 nike

<分区>

我的目标是打印具有特征对象成员的结构的内容,但我找不到如何告诉 Rust 编译器该成员还实现了其他特征,如 DisplayDebug.

例如,在下面的程序中,我想打印S2的结构(和S1进行比较)但是我卡在了的实现中fmt.

trait Tr {}

impl Tr for usize {}

impl Tr for String {}

#[derive(Debug)]
struct S1<A: Tr + std::fmt::Debug> {
member: Box<A>,
}

struct S2 {
member: Box<Tr>,
}

impl std::fmt::Debug for S2 {
fn fmt(&self, fmt: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
// ??
Ok(())
}
}

fn main() {
let s1 = S1 {
member: Box::new(String::from("abc")),
};

println!("{:?}", s1);

let s2 = S2 {
member: Box::new(String::from("abc")),
};

println!("{:?}", s2);
}

这个程序我想要的输出是

S1 { member: "abc" }
S2 { member: "abc" }

是否可以为 S2 这样的结构实现 Debug

(使用rust 版本:1.35)

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com