演算子のオーバーロードRustでは、多くの演算子はトレイトによってオーバーロードすることができます。一部の演算子は引数となる値の型に応じて異なる役割を果たすことができるということです。これが可能なのは、演算子が実際にはメソッド呼び出しの糖衣構文にすぎないからです。bにおける+演算子はaddメソッドを(a.add(b)の形で)呼び出します。このaddメソッドはAddトレイトの一部です。それ故、+はAddトレイトを実装している全ての型に対して有効なのです。Addなどの、演算子をオーバーロードするトレイトの一覧はここにあります。ここでは`Foo`に対して`Add<Bar>`を実装する。時に呼び出されるトレイト。型を反転することで、非可換の加算を実装できる。`Add<Foo>`を実装する。これは加算時の右辺が`Foo`型の時に呼び出されるメソッド。BarFoo`という結果をもたらす。