Есть ли способ для меня использовать #[производное] на структуру или перечисление из библиотеки без редактирования исходного кода фактической библиотеки?
Я работаю над программой Rust, которая использует serde-json, и мне очень нравится #[derive(Serialize, Deserialize)]
макросы, которые он дает для использования с пользовательскими структурами и перечислениями. Макросы прекрасно работают с моими типами. Однако я хотел бы иметь возможность вызывать макросы для типов из других библиотек, которые я использую.
Я бы реализовал Serialize
а также Deserialize
черты на этих типах сам, но код для Deserialize
особенно запутанный, и было бы трудно писать для каждого типа библиотеки, который я использую в структуре.
1 ответ
Есть ли способ для меня, чтобы использовать
#[derive]
на структуру или перечисление из библиотеки без редактирования исходного кода фактической библиотеки?
Нет, нет
Смотрите также:
Для конкретного случая Serde вы можете использовать "удаленное получение", но вы должны предоставить дублирующее определение типа, по существу, переписав исходную структуру.
Многие ящики предоставляют флаг функции для включения дополнительных функций, поэтому вы можете посмотреть, есть ли в вашем ящике флаг Serde. Если этого не произойдет, вы можете отправить это в библиотеку.