我有大约10个结构体,每个结构体有5-10个字段,我希望能够使用相同的格式将它们打印出来。
我的大多数结构体看起来像这样:
struct Example {
a: Option<String>,
b: Option<i64>,
c: Option<String>,
... etc
}
我希望能够定义一个
fmt::Display
的impl
,而不必再次枚举字段,以避免添加新字段时遗漏任何一个字段。对于这个结构:let eg = Example{
a: Some("test".to_string),
b: Some(123),
c: None,
}
我想要的输出格式是:。
a: test
b: 123
c: -
我目前正在使用#[derive(Debug)]
,但我不喜欢它打印出Some(X)
、None
和其他一些东西。
如果我知道我的结构体中所有的值都是Option<T: fmt::Display>
,那么我是否可以生成一个Display
方法而无需再列出字段?