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 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. Defaults to Mu.
(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.