Я начинаю изучать макросы Rust, но документация несколько ограничена.Что хорошо - я полагаю, это экспертная особенность.Хотя я могу выполнять базовую генерацию кода, реализацию признаков и т. Д., Некоторые из встроенных макросов кажутся намного лучше, например, различные макросы печати, которые проверяют строковый литерал и используют его для расширения кода.
Я посмотрел на источник print!
, и он вызывает другой макрос с именем format_args
.К сожалению, это, кажется, не встроено в «чистый Rust», в комментарии просто говорится «встроенный компилятор».
Возможно ли написать что-то столь же сложное, как print!
в чистом макросе Rust?Если так, как это будет сделано?
Я на самом деле заинтересован в построении "tree времени компиляции" - в основном распознавая определенные фиксированные строки как "ключевые слова", фиксированные во время компиляции.Это было бы производительно (вероятно), но в основном я просто заинтересован в генерации кода.