Coder Social home page Coder Social logo

Comments (5)

vks avatar vks commented on September 17, 2024 1

@petrochenkov

Serialize is a macro with the same name as a trait.

I think this is not something that users of procedural macros necessarily know. That it is not mentioned in the docs does not help.

from edition-guide.

vks avatar vks commented on September 17, 2024

This works:

use serde_derive::{Serialize, Deserialize};

#[derive(Serialize, Deserialize)]
...

from edition-guide.

eminence avatar eminence commented on September 17, 2024

hi @vks, this seems to be covered in the "Macro changes" section of the guide: https://rust-lang-nursery.github.io/edition-guide/2018/transitioning/modules/macros.html

Was there anything in particular about this section that was confusing, or that you think could be improved? I guess one of the problems is that in Rust 2015, you didn't have to explicitly name the macro (or derive) you want to use, but in Rust 2018 you have to name them.

from edition-guide.

vks avatar vks commented on September 17, 2024

from edition-guide.

petrochenkov avatar petrochenkov commented on September 17, 2024

@vks

The transition guide states you have to name the macro, which seems
inaccurate in this case. It should mention that in the case of procedural
macros, you have to mention the trait you want to derive.

Serialize is a macro with the same name as a trait.
The docs mentioning derive_Serialize are wrong in this case, derive_Serialize is some naming scheme used only for unstable legacy syntax extensions, it doesn't apply to stable "modern" proc macros.

from edition-guide.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.