У меня есть около 10 структур с 5-10 полями в каждом, и я хочу иметь возможность распечатать их в том же формате.
Большинство моих структур выглядят так:
struct Example {
a: Option<String>,
b: Option<i64>,
c: Option<String>,
... etc
}
Я бы хотел иметь возможность определить impl
для fmt::Display
без повторного перечисления полей, чтобы не было возможности пропустить одно, если добавлено новое.
Для структуры:
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
без необходимости повторного перечисления полей?