Skip to content

Instantly share code, notes, and snippets.

@Altai-man
Created January 9, 2019 21:01
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Altai-man/049f7bf436d348a456ead66f7929a9f6 to your computer and use it in GitHub Desktop.
Save Altai-man/049f7bf436d348a456ead66f7929a9f6 to your computer and use it in GitHub Desktop.
# Create an enum
my $new-enum = Metamodel::EnumHOW.new_type(name => 'A', base_type => Int);
$new-enum.^compose_repr;
# Create a value
my $value = $new-enum.new(2);
$value.^add_method('key', method { 'Two' });
$value.^add_method('value', method { 2 });
# Add a value and compose the enum
$new-enum.^add_enum_value($value);
$new-enum.^compose;
# Test part
say $new-enum.^name; # A
say $value.^name; # A
say $value ~~ $new-enum; # Has to be True => False
say $new-enum ~~ $value; # Has to be False => False
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment