Попытка скомпилировать это локально приводит к полному сообщению об ошибке:
error: recursion limit reached while expanding the macro `stringify`
--> src/lib.rs:13:15
|
13 | let gen = quote! {
| _______________^
14 | | impl<'de> Deserialize<'de> for #name {
15 | | fn deserialize<D>(deserializer: D) -> Result<#name, D::Error>
16 | | where
... |
22 | | }
23 | | };
| |_____^
|
= help: consider adding a `#![recursion_limit="128"]` attribute to your crate
= note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info)
error: aborting due to previous error
Если в первой строке ящика указано следующее, ошибка исчезнет. Я предполагаю, что значение по умолчанию recursion_limit просто слишком мало для такого сложного макроса (который IMO не такой сложный). Я уверен, что есть веская причина, и я рад, что сообщение об ошибке содержало решение:
#![recursion_limit="128"]