トレイトオブジェクト安全性
以下の 2 つのルールに従う トレイト のみ、トレイトオブジェクト にすることが可能
1. ジェネリック関数 (e.g. fn some_fn<T>(t: T))を持っていない
2. 戻り値や(レシーバ 以外の)引数の型が Self でない
#Rust