RANDOM_RUST_DEV Telegram 226
Вот еще один Rust Tip

Делайте derive макросы для своих трейтов.
Если из структуры типа примерно понятно, как реализовать трейт - этот трейт отличный кандидат для derive.
Это значительно уменьшит количество бойлерплейта и уменьшит вероятность глупых ошибок, что мы можем допустить при ручной реализации трейта.

Процедурные макросы могут показаться довольно сложными сначала. Надо парсить и генерировать код.
На самом деле все просто, так как у нас есть крейты syn и quote.
С помощью syn можно без труда распарсить код на Rust, который передается в процедурный макрос. А с помощью иных крейтов можно и содержимое аттрибутов распарсить как по волшебству.
А quote поможет сгенерировать код реализации трейта из шаблона с подстановками.

Не забудьте при генерации Rust кода устанавливать корректные Span-ы. Это поможет пользователю макроса найти причину ошибки.

Так же существует множество надстроек, что делают процедурные макросы вовсе тривиальными. Хотя каждая обладает своими ограничениями.



tgoop.com/random_rust_dev/226
Create:
Last Update:

Вот еще один Rust Tip

Делайте derive макросы для своих трейтов.
Если из структуры типа примерно понятно, как реализовать трейт - этот трейт отличный кандидат для derive.
Это значительно уменьшит количество бойлерплейта и уменьшит вероятность глупых ошибок, что мы можем допустить при ручной реализации трейта.

Процедурные макросы могут показаться довольно сложными сначала. Надо парсить и генерировать код.
На самом деле все просто, так как у нас есть крейты syn и quote.
С помощью syn можно без труда распарсить код на Rust, который передается в процедурный макрос. А с помощью иных крейтов можно и содержимое аттрибутов распарсить как по волшебству.
А quote поможет сгенерировать код реализации трейта из шаблона с подстановками.

Не забудьте при генерации Rust кода устанавливать корректные Span-ы. Это поможет пользователю макроса найти причину ошибки.

Так же существует множество надстроек, что делают процедурные макросы вовсе тривиальными. Хотя каждая обладает своими ограничениями.

BY Random Rust Dev


Share with your friend now:
tgoop.com/random_rust_dev/226

View MORE
Open in Telegram


Telegram News

Date: |

Telegram channels enable users to broadcast messages to multiple users simultaneously. Like on social media, users need to subscribe to your channel to get access to your content published by one or more administrators. The visual aspect of channels is very critical. In fact, design is the first thing that a potential subscriber pays attention to, even though unconsciously. Co-founder of NFT renting protocol Rentable World emiliano.eth shared the group Tuesday morning on Twitter, calling out the "degenerate" community, or crypto obsessives that engage in high-risk trading. Telegram Channels requirements & features 2How to set up a Telegram channel? (A step-by-step tutorial)
from us


Telegram Random Rust Dev
FROM American