本文へスキップ
BecomeCoder

Rustのエラー · エラー8

E0277: trait bound is not satisfied ― トレイトが実装されていない

自作の構造体を println!("{}", ...) で表示しようとすると、表示方法を定める Display トレイトが実装されていないため出ます。

出るコード

struct Point { x: i32, y: i32 }
fn main() {
    let p = Point { x: 1, y: 2 };
    println!("{}", p);   // Display 未実装
}

エラーメッセージ

error[E0277]: `Point` doesn't implement `std::fmt::Display`

直し方

デバッグ表示でよければ #[derive(Debug)] を付けて println!("{:?}", p); にします。独自の表示形式にしたいなら impl std::fmt::Display for Point を書きます。