Можно ли сделать тип только подвижным, а не копируемым?

Примечание редактора: этот вопрос был задан до Rust 1.0, и некоторые из утверждений в вопросе не обязательно верны в Rust 1.0. Некоторые ответы были обновлены с учетом обеих версий.

У меня есть такая структура

struct Triplet {
    one: i32,
    two: i32,
    three: i32,
}

Если я передаю это функции, она неявно копируется. Теперь иногда я читаю, что некоторые значения не могут быть скопированы и поэтому должны быть перемещены.

Будет ли возможно сделать эту структуруTriplet без копируемого? Например, было бы возможно реализовать черту, которая сделала быTriplet не копируемый и, следовательно, «подвижный»?

Я где-то читал, что нужно реализоватьClone свойство копировать то, что не является неявно копируемым, но я никогда не читал об обратном, то есть о чем-то, что неявно копируемо, и о том, что оно не подлежит копированию, так что оно перемещается вместо этого.

Имеет ли это хоть какой-то смысл?

Ответы на вопрос(2)

Ваш ответ на вопрос