Displayトレイトは、ユーザーに見せる為の文字列を取得する為のトレイト。
use std::fmt::Display;
Displayトレイトを実装すると、println!マクロ等で"{}"によって出力できるようになる。
また、自動的にToStringトレイトも実装され、to_stringメソッドが使えるようになる。
Debugトレイトの場合は#[derive(Debug)]属性によってデフォルトの実装が生成されるが、
Displayトレイトの場合は#[derive]による生成は出来ない。
Displayトレイトではユーザーに見せる為の文字列を生成する必要があるので、自動生成機能は提供されていないらしい。
Displayトレイトを実装する例。
struct MyStruct {
value1: i32,
value2: i32,
}
impl std::fmt::Display for MyStruct {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
write!(f, "MyStruct({}, {})", self.value1, self.value2)
}
}
fn main() {
let value = MyStruct {
value1: 123,
value2: 456,
};
println!("{}", value);
}