does Positional[uint32] does Stringy
Unlike Str, which is made of Grapheme clusters, Uni is string strictly made of Unicode codepoints. That is, base characters and combining characters are separate elements of a Uni
instance.
Uni
presents itself with a list-like interface of integer Codepoints.
Typical usage of Uni
is through one of its subclasses, NFC
, NFD
, NFKD
and NFKC
, which represent strings in one of the Unicode Normalization Forms of the same name.
Methods §
method new §
method new(* --> Uni)
Creates a new Uni
instance from the given codepoint numbers.
method list §
Defined as:
method list(Uni:)
Returns a Seq
of integer codepoints.
method NFC §
method NFC(Uni: --> NFC)
Returns a NFC (Normal Form Composed)-converted version of the invocant.
method NFD §
method NFD(Uni: --> NFD)
Returns a NFD (Normal Form Decomposed)-converted version of the invocant.
method NFKC §
method NFKC(Uni: --> NFKC)
Returns a NFKC (Normal Form Compatibility Composed)-converted version of the invocant.
method NFKD §
method NFKD(Uni: --> NFKD)
Returns a NFKD (Normal Form Compatibility Decomposed)-converted version of the invocant.
method codes §
method codes(Uni: --> Int)
Returns the number of codepoints in the invocant.
method elems §
method elems(Uni: --> Int)
Returns the number of codepoints in the invocant.
Type Graph §
Routines supplied by role Positional §
Uni does role Positional, which provides the following routines:
(Positional) method of §
method of()
Returns the type constraint for elements of the positional container, that is, the T
in the definition above, which, as it can be seen, defaults to Mu. It is returned as a type object.
my ;say .of.^name; # OUTPUT: «Mu my Str ;say .of.raku; # OUTPUT: «Str» say (my int @).of; # OUTPUT: «(int)»
(Positional) method elems §
method elems()
Should return the number of available elements in the instantiated object.
(Positional) method AT-POS §
method AT-POS(\position)
Should return the value / container at the given position.
(Positional) method EXISTS-POS §
method EXISTS-POS(\position)
Should return a Bool
indicating whether the given position actually has a value.
(Positional) method STORE §
method STORE(\values, :)
This method should only be supplied if you want to support the:
my is Foo = 1,2,3;
syntax for binding your implementation of the Positional
role.
Should accept the values to (re-)initialize the object with. The optional named parameter will contain a True
value when the method is called on the object for the first time. Should return the invocant.