Как я могу сериализовать объект Rust в литералы Rust с помощью serde? - PullRequest
1 голос
/ 04 августа 2020
• 1000 *

(Возможно, если я предоставлю const FOO: Foo =.) буквальные значения.

Я неправильно понял его назначение?

1 Ответ

1 голос
/ 04 августа 2020

Чтобы буквально сделать то, о чем вы просили, вам нужно написать собственный сериализатор Serde . Чтобы уточнить все детали, потребуется немного времени. Большинство литералов (например, строки, символы и числа) могут быть сериализованы в допустимые литералы Rust с использованием Display реализации proc_macro2::Literal, которая позаботится об экранировании специальных символов, добавив суффикс к числам с плавающей запятой .0 при необходимости и аналогичные детали. Однако похоже, что реализация сериализатора для структур будет зависеть от вас.

Наиболее распространенный подход к генерации кода в Rust - это написание макроса pro c и использование quote crate для выдачи исходного кода. Я недостаточно знаю о вашем варианте использования, чтобы сказать, будет ли этот подход полезным для вашей проблемы.

...