Rustのトレイトが他言語のInterfaceやMixin的なことするのはわかったけど、Gtk-rsでなぜuseでApplicationExtとかをインポート(?)しないといけないのかあまりわかってない
@skia trait は第三者が既存の型に後付けできることがあるので、曖昧さをなくすためには選択肢が事前に提示されている必要があります。
つまり foo.bar() したとき bar がトレイト Bar の Bar::bar なのか、何か別のトレイト Qux の Qux::bar なのか、複数の可能性がありうるので、そこを明示させようということです。
ひとつしかないときにも明示が必要なのは……関係ない場所で関係ない用途のために定義された trait まで探したくないからじゃないですかね。
@lo48576 なるほど、いま私が不自然に思ってる書き方はTrait理解したら説明ができるって感じですかね。
とりあえずMixinからUFCSの纏まりみたいなニュアンスの認識になった、同じものが2個あったら困るって意味では少なくともマシかな程度に。