hlrun.obj
class HlString(HlObj)
Proxy to a Hashlink string.
bytes: bytes
Internal byte array.
length: int
The number of characters in this String.
toUpperCase
@method
def toUpperCase() -> 'HlString'
Returns a String where all characters of this String are upper case.
toLowerCase
@method
def toLowerCase() -> 'HlString'
Returns a String where all characters of this String are lower case.
charAt
@method
def charAt(index: int) -> 'HlString'
Returns the character at position index of this String.
If index is negative or exceeds this.length, the empty String "" is returned.
charCodeAt
@method
def charCodeAt(index: int) -> Optional[int]
Returns the character code at position index of this String.
If index is negative or exceeds this.length, null is returned.
To obtain the character code of a single character, "x".code can be
used instead to inline the character code at compile time. Note that
this only works on String literals of length 1.
findChar
@method
def findChar(start: int, len: int, src: HlObj, srcLen: int) -> int
Undocumented private inline function that only exists in Hashlink. Probably not worth using.
indexOf
@method
def indexOf(str: 'HlString', startIndex: Optional[int]) -> int
Returns the position of the leftmost occurrence of str within this String.
If str is the empty String "", then:
* If startIndex is not specified or < 0, 0 is returned.
* If startIndex >= this.length, this.length is returned.
* Otherwise, startIndex is returned,
Otherwise, if startIndex is not specified or < 0, it is treated as 0.
If startIndex >= this.length, -1 is returned.
Otherwise the search is performed within the substring of this String starting
at startIndex. If str is found, the position of its first character in this
String relative to position 0 is returned.
If str cannot be found, -1 is returned.
lastIndexOf
@method
def lastIndexOf(str: 'HlString', startIndex: Optional[int]) -> int
Returns the position of the rightmost occurrence of str within this
String.
If startIndex is given, the search is performed within the substring
of this String from 0 to startIndex + str.length. Otherwise the search
is performed within this String. In either case, the returned position
is relative to the beginning of this String.
If startIndex is negative, the result is unspecified.
If str cannot be found, -1 is returned.
split
@method
def split(delimiter: 'HlString') -> List[HlString]
Splits this String at each occurrence of delimiter.
If this String is the empty String "", the result is not consistent
across targets and may either be [] (on Js, Cpp) or [""].
If delimiter is the empty String "", this String is split into an
Array of this.length elements, where the elements correspond to the
characters of this String.
If delimiter is not found within this String, the result is an Array
with one element, which equals this String.
If delimiter is null, the result is unspecified.
Otherwise, this String is split into parts at each occurrence of
delimiter. If this String starts (or ends) with delimiter, the
result Array contains a leading (or trailing) empty String "" element.
Two subsequent delimiters also result in an empty String "" element.
substr
@method
def substr(pos: int, len: Optional[int]) -> HlString
Returns len characters of this String, starting at position pos.
If len is omitted, all characters from position pos to the end of
this String are included.
If pos is negative, its value is calculated from the end of this
String by this.length + pos. If this yields a negative value, 0 is
used instead.
If the calculated position + len exceeds this.length, the characters
from that position to the end of this String are returned.
If len is negative, the result is unspecified.
substring
@method
def substring(startIndex: int, endIndex: Optional[int]) -> HlString
Returns the part of this String from startIndex to but not including endIndex.
If startIndex or endIndex are negative, 0 is used instead.
If startIndex exceeds endIndex, they are swapped.
If the (possibly swapped) endIndex is omitted or exceeds
this.length, this.length is used instead.
If the (possibly swapped) startIndex exceeds this.length, the empty
String "" is returned.
toString
@method
def toString() -> HlString
Returns the String itself.
fromCharCode
@method
def fromCharCode(code: int) -> HlString
Returns the String corresponding to the character code code.
If code is negative or has another invalid value, the result is
unspecified.
method
def method(func: Callable[..., R]) -> Callable[..., R]
Decorator that forwards method calls to the underlying HashLink object.
Preserves the original function's return type and parameter types.
obj
def obj(type_name: str) -> Callable[[T], T]
Decorator to register a class in the OBJ_MAP dictionary.
OBJ_MAP: Dict[str, type]
OBJ_MAP = {}
P
P = ParamSpec('P')
R
R = TypeVar('R')
T
T = TypeVar('T', bound=(Type[Any]))