Git Product home page Git Product logo

Comments (7)

xsahil03x avatar xsahil03x commented on June 9, 2024 1

@sinadarvi that's a pretty nice use-case. Yes, we can work on this but I think we have to create different annotations for these kinds of code generation. So that the developer won't get much confused. @astralstriker whats your views on this?

from super_enum.

astralstriker avatar astralstriker commented on June 9, 2024

As good as the use case is, it is not relevant to sealed classes and therefore, super enum.
This is about enum with values, which again can be emulated with super enum but really would be an overkill. I don't want to added this feature to super enum either as it doesn't glue in with the concept of sealed classes.
Imo, we should make another package for this, that's maybe is simply called enum.

from super_enum.

sinadarvi avatar sinadarvi commented on June 9, 2024

@astralstriker
sry for my poor understanding, but how can it break any concept of sealed classes? is there anything I don't see? can you explain more?

from super_enum.

astralstriker avatar astralstriker commented on June 9, 2024

Might be me whose understanding is poor.
As far as my understanding goes-
Enum values by default have an index associated with them, starting from 0 of course, which is considered to be their values. Just as your use case suggested, you sometimes need to assign values different from indices to enum values.
In your case, the enum values have the same type (String) of value assigned to them. In Kotlin and Java, this is achievable by using plain enum classes.
Sealed classes come into play when there are different types of values associated with the values of an enum.

from super_enum.

sinadarvi avatar sinadarvi commented on June 9, 2024

@astralstriker I can understand your concern but it's not necessary to just use phrase value we can set any name suitable! and I don't think there is any conflict with sealed class concept. as you know a sealed class can have multiple subclasses and any of them can have multiple instances. so, as far as I know, shouldn't be any problem here.

@superEnum(String,"code")
enum Country{
	@value("ae")
  	UnitedArabEmirates,
  	@value("ar")
  	Argentina,
  	@value("at")
  	Austria,
}

main(){
	Country country = Country.Austria;
	print(country.code)
}

and generated country.g.dart :

.
.
.
@immutable
class Argentina extends Country {
  const Argentina() : super(_Country.Argentina);

  final String code = "ar";

  @override
  String toString() => 'Argentina(code:${this.code})';

  @override
  List get props => [code];
}
.
.
.

from super_enum.

sinadarvi avatar sinadarvi commented on June 9, 2024

@astralstriker any idea? can we somehow figure it out?

from super_enum.

xsahil03x avatar xsahil03x commented on June 9, 2024

@sinadarvi thanks for the feature request but, this request is out of scope for this package and should be handled by creating another generator package.

So closing as of now 👍

from super_enum.

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.