Skip to content

Instantly share code, notes, and snippets.

@samuraisam
Last active December 18, 2015 16:19
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save samuraisam/5810892 to your computer and use it in GitHub Desktop.
Save samuraisam/5810892 to your computer and use it in GitHub Desktop.
class PB::SubMsg {
}
class PB::Option {
has Str $.name;
has $.constant;
has PB::SubMsg $.sub-message;
method gist() {
"<Option {$.name}={$.constant || 'Any'}>"
}
}
multi infix:<eq>(PB::Option $a, PB::Option $b) {
return
$a.name eq $b.name
&& (($a.constant && $b.constant) && $a.constant eq $b.constant)
&& (($a.sub-message && $b.sub-message) && $a.sub-message eq $b.sub-message);
}
my $o = PB::Option.new(name=>'hello');
my $oo = PB::Option.new(name=>'hello');
say $o eq $oo;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment