This is a blog post that really is about C++, but with a look at how Rust does things. So, this is an interesting C++/Rust comparison for once.

  • TehPers@beehaw.org
    link
    fedilink
    English
    arrow-up
    2
    ·
    edit-2
    2 months ago

    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 of syn (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 attribute

    • BB_C@programming.dev
      link
      fedilink
      arrow-up
      2
      ·
      edit-2
      2 months ago

      Not 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 expected syn 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 😉