É possível tornar um tipo apenas móvel e não copiável?

Nota do editor: essa pergunta foi feita antes do Rust 1.0 e algumas das afirmações na pergunta não são necessariamente verdadeiras no Rust 1.0. Algumas respostas foram atualizadas para abordar ambas as versões.

Eu tenho essa estrutura

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

Se eu passar isso para uma função, ela é copiada implicitamente. Agora, às vezes eu li que alguns valores não são copiáveis e, portanto, precisam ser movidos.

Seria possível fazer essa estruturaTriplet não copiável? Por exemplo, seria possível implementar uma característica que tornariaTriplet não copiável e, portanto, "móvel"?

Eu li em algum lugar que é preciso implementar oClone característica de copiar coisas que não são implicitamente copiáveis, mas eu nunca li o contrário, ou seja, ter algo que é implicitamente copiável e torná-lo não copiável para que ele se mova.

Isso faz algum sentido?

questionAnswers(2)

yourAnswerToTheQuestion