class Uni
A string of Unicode codepoints
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: «Mumy 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.