this post was submitted on 01 Oct 2024
27 points (100.0% liked)
Rust
5981 readers
54 users here now
Welcome to the Rust community! This is a place to discuss about the Rust programming language.
Wormhole
Credits
- The icon is a modified version of the official rust logo (changing the colors to a gradient and black background)
founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
I don't do C++ as a life choice, and thus not 100% sure what the author means here. But I have the feeling that he is wrong, on multiple levels even 😉
Correct - Rust's attribute grammar allows any parseable sequence of tokens enclosed in
#[attr ...]
basically. Serde specifically requires things to be in strings, but this is not a requirement of modern Rust or modern versions ofsyn
(if you're comfortable writing your own parser for the meta).The author is not a Rust expert though, so I'm not surprised to see this assumption. It doesn't take away from the article though.
Edit: for fun,
syn
has an example parsing an attribute in an attributeNot only that. We don't just "inject" raw strings with the
syn
/quote
duality. Stringified or not, the token tree will be parse-checked into the expectedsyn
type before being used in generated code.So the distinction is both wrong and irrelevant. This is what I meant by wrong on multiple levels/layers 😉