Giter Site home page Giter Site logo

Comments (4)

clux avatar clux commented on June 9, 2024 1

Master has a partial fix for this now. We will no longer add #[derive(Default)] to enums.

This will still end up not compiling in the larger context, but you can at least now sideload a impl Default for the enum to fix it. We can never truly fix this for all cases (if it's not in the schema), and for the cases we can cover, I'll defer to issue #67.

from kopium.

mt-inside avatar mt-inside commented on June 9, 2024 1

Thanks very much for this @clux , I was just about raise this and suggest that exact solution.

from kopium.

clux avatar clux commented on June 9, 2024

oh, there's not a great way to solve this; what are we supposed to do?

  • if the enum is nested within a struct that derives default, then the enum needs to impl Default (so we can't just skip it for enums)
  • we can't just pick a default (if it's not specified in the schema)

So either we have to tell the user to impl Default for EnumVariant or we have to bail! if there's no specified default in the schema. Not sure what is good to do here immediately.

from kopium.

clux avatar clux commented on June 9, 2024

Actually, I think the sane thing for us to do is to:

  • never add #[derive(Default)] to an enum - done in #89
  • if we see a default value in the schema; then add a special impl Default for ThatEnum - via #67
  • if we don't see that; leave it missing, requiring the user to impl Default for ThatEnum - (nothing we can do in this case)

from kopium.

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.