Obter um campo de enum de uma estrutura: não é possível sair do conteúdo emprestado

Sou novo no Rust e estou tentando entender o conceito de propriedade / empréstimo. Agora reduzi meu código a esse exemplo de código mínimo que fornece um erro de compilação.

pub struct Display {
    color: Color,
}

pub enum Color {
    Blue         = 0x1,
    Red          = 0x4,
}

impl Display {
    fn get_color_value(&self) -> u16 {
        self.color as u16
    }
}
src/display.rs:12:9: 12:13 error: cannot move out of borrowed content
src/display.rs:12         self.color as u16
                          ^~~~
error: aborting due to previous error
Could not compile.

Eu ainda estou notudo é copiado pelo valor mentalidade, onde é perfeitamente legal fazerself.color como isso me daria uma cópia doColor. Aparentemente, eu estou errado. Encontrei outras perguntas sobre esse mesmo erro no SO, mas não há solução para o meu problema.

Pelo que entendi, o campo é de propriedade de quem possui oDisplay. Como eu só pedi emprestada uma referência aoDisplay, Eu não o possuo. Extraindocolor tenta transferir a propriedade doColor para mim, o que não é possível, já que não possuo oDisplay. Isso está correto?

Como eu resolvo isso?

questionAnswers(1)

yourAnswerToTheQuestion