Как декодировать объект JSON с именем атрибута ключевого слова Rust?

Мне было интересно, можно ли декодировать объект JSON в Rust, у которого есть имя атрибута, которое также является ключевым словом Rust. Я работаю с ядром rustc-serialize, и мое определение структуры выглядит следующим образом:

#[derive(RustcDecodable)]
struct MyObj {
  type: String
}

Компилятор выдает ошибку, потому что тип - это ключевое слово. Точное сообщение об ошибке компилятора:

error: expected identifier, found keyword `type`
src/mysrc.rs:23     type: String,
                           ^~~~

Извините за вопрос новобранец, я только что начал опробовать Rust.

Ответ 1

Вы можете использовать ящик serde. Он поддерживает переименование полей с февраля 2015 года

Ваш пример может выглядеть следующим образом:

#[derive(Deserialize)]
struct MyObj {
    #[serde(rename = "type")] 
    type_name: String
}