role QuantHash
role QuantHash does Associative { }
The QuantHash role provides the basic functionality shared by the
Setty, Baggy and Mixy roles. These
provide object hashes whose values are limited in some way.
QuantHashes are what set operators use internally.
Methods
method hash
method hash()
Coerces the QuantHash object to a Hash (by stringifying the objects
for the keys) with the values of the hash limited to the same limitation as
QuantHash, and returns that.
method Hash
method Hash()
Coerces the QuantHash object to a Hash (by stringifying the objects
for the keys) without any limitations on the values, and returns that.
method Map
method Map()
Available as of the 2021.02 release of the Rakudo compiler.
Coerces the QuantHash object to a Map (by stringifying the objects
for the keys) without any limitations on the values, and returns that.
method of
method of()
Returns the type of value a value of this QuantHash may have. This is
typically Bool for Setty, UInt for
Baggy or Real for Mixy roles.
method keyof
method keyof()
Returns the type of value a key of this subclass of QuantHash may have. This
is typically Mu, which is also the default for punned QuantHashes.
method Capture
method Capture()
Returns the object as a Capture by previously coercing it to a Hash.
method list
multi method list(QuantHash:D:)
Returns a list of Pair objects of all keys and values in the QuantHash.
method Setty
method Setty(--> Setty:D)
Coerce the QuantHash object to the equivalent object that uses the Setty
role. Note that for Mixy type coercion items with negative values will be skipped.
my %b is Bag = one => 1, two => 2;
say %b.Setty; # OUTPUT: «Set(one two)»
my %m is Mix = one => 1, minus => -1;
say %m.Setty; # OUTPUT: «Set(one)»
method Baggy
method Baggy(--> Baggy:D)
Coerce the QuantHash object to the equivalent object that uses the Baggy
role. Note that for Mixy type coercion items with negative values will be skipped.
my %s is Set = <one two>;
say %s.Baggy; # OUTPUT: «Bag(one two)»
my %m is Mix = one => 1, minus => -1;
say %m.Baggy; # OUTPUT: «Bag(one)»
method Mixy
method Mixy(--> Mixy:D)
Coerce the QuantHash object to the equivalent object that uses the Mixy
role.
my %s is Set = <one two>;
say %s.Mixy; # OUTPUT: «Mix(one two)»
my %b is Bag = one => 1, two => 2;
say %b.Mixy; # OUTPUT: «Mix(one two(2))»