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