Получить поле enum из структуры: не может выйти из заимствованного содержимого

Я новичок в Rust и пытаюсь обернуть голову вокруг концепции владения / заимствования. Теперь я сократил свой код до этого минимального примера кода, который выдает ошибку компиляции.

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.

Я все еще ввсе копируется по значению мышление, где это совершенно законно делатьself.color так как это даст мне копиюColor, Видимо, я не прав. Я нашел некоторые другие вопросы об этой же ошибке на SO, но не решил мою проблему.

Насколько я понимаю, поле принадлежит тому, кто владеетDisplay, Поскольку я заимствовал только ссылку наDisplayЯ не владею им. экстрагированиеcolor попытки передать право собственности наColor для меня, что невозможно, так как я не владеюDisplay, Это правильно?

Как мне это решить?

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

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