guppylang icon indicating copy to clipboard operation
guppylang copied to clipboard

Parse enum definitions

Open mark-koch opened this issue 1 year ago • 2 comments

Add a decorator @guppy.enum that parses a python class into a EnumDef.

Come up with syntax for struct enum variants. Maybe something like this:

@guppy.enum
class MyEnum:
    Variant1 = {
        "a": int,
        "b": Qubit
    }
    Variant2 = {}
    ...

Blocked by #160

mark-koch avatar Mar 06 '24 10:03 mark-koch

Could we have anonymous variants,

Variant3 = (int, float)

?

ss2165 avatar Mar 06 '24 11:03 ss2165

Notes:

  • If one variant of an enum contains a linear field, the whole enum becomes linear
  • We should probably unify enums and structs as some ADT type internally

croyzor avatar May 15 '24 08:05 croyzor