does Metamodel::Naming does Metamodel::Documenting does Metamodel::Stashing does Metamodel::TypePretense does Metamodel::RolePunning does Metamodel::BoolificationProtocol
Warning: this role is part of the Rakudo implementation, and is not a part of the language specification.
A ParametricRoleGroupHOW
groups a set of ParametricRoleHOW
, every one of them representing a single role declaration with their own parameter sets.
([::T] ).HOW.say; # OUTPUT: «Perl6::Metamodel::ParametricRoleHOW.new» Zape.HOW.say ; # OUTPUT: «Perl6::Metamodel::ParametricRoleGroupHOW.new»
ParametricRoleHOW
s need to be added to this kind of group:
my \zape := Metamodel::ParametricRoleGroupHOW.new_type( name => "zape");my \zipi := Metamodel::ParametricRoleHOW.new_type( name => "zipi", group => zape);say zipi.HOW; # OUTPUT: «Perl6::Metamodel::ParametricRoleHOW.new»
Note: As most of the Metamodel
classes, this class is here mainly for illustration purposes and it's not intended for the final user to instantiate.
Type Graph §
Routines supplied by role Metamodel::Naming §
Metamodel::ParametricRoleGroupHOW does role Metamodel::Naming, which provides the following routines:
(Metamodel::Naming) method name §
method name()
Returns the name of the metaobject, if any.
say 42.^name; # OUTPUT: «Int»
(Metamodel::Naming) method set_name §
method set_name(, )
Sets the new name of the metaobject.
Routines supplied by role Metamodel::Stashing §
Metamodel::ParametricRoleGroupHOW does role Metamodel::Stashing, which provides the following routines:
(Metamodel::Stashing) method add_stash §
method add_stash()
Creates and sets a stash for a type, returning $type_obj
.
This method is typically called as the last step of creating a new type. For example, this is how it would be used in a minimal HOW that only supports naming and stashing:
does Metamodel::Naming does Metamodel::Stashing my Mu constant WithStash = WithStashHOW.new_type: :name<WithStash>;say WithStash.WHO; # OUTPUT: «WithStash»