トレイトについてはまだ議論していませんが、とりあえずそれらを、ある型に対してある挙動を追加するための、注釈のようなものとして考えて構いません。トレイトを実装します。代入するとき、データのコピーが作られることを意味します。どこか別の場所へのポインタを持たず、コピーが完全コピーだからです。トレイトを実装しているので、推測どおりそれらの所有権は「所有権ルール」に従ってはムーブしません。例として、次の2つのコードスニペットはコンパイルが通ります。トレイトを実装するからです。トレイトを実装していない型を使っていたならば、ムーブした値を使おうとしたため、コンパイルエラーが出ていたでしょう。セクションで議論するでしょう。所有権を越えてもちろん、もし書いた全ての関数で所有権を返さなければならないのであれば、こうなります。v}これは非常に退屈になるでしょう。たくさんのものの所有権を受け取ろうとすると、状況はさらに悪化します。戻り値の型、リターン行、関数呼出しがもっと複雑になります。幸運なことに、Rustは借用という機能を提供します。それはこの問題を解決するために手助けしてくれます。それが次のセクションの話題です。