NAME

Clownfish::String - Immutable string holding Unicode characters.

SYNOPSIS

my $string = Clownfish::String->new('abc');
print $string->to_perl, "\n";

DESCRIPTION

CONSTRUCTORS

new

my $string = Clownfish::String->new($perl_string);

Return a String containing the passed-in Perl string.

METHODS

cat

my $result = $string->cat($other);

Return the concatenation of the String and other.

to_i64

my $int = $string->to_i64();

Extract a 64-bit integer from a decimal string. See basex_to_i64() for details.

basex_to_i64

my $int = $string->basex_to_i64($base);

Extract a 64-bit integer from a variable-base stringified version. Expects an optional minus sign followed by base-x digits, stopping at any non-digit character. Returns zero if no digits are found. If the value exceeds the range of an int64_t, the result is undefined.

  • base - A base between 2 and 36.

to_f64

my $float = $string->to_f64();

Convert a string to a floating-point number using the C library function strtod.

starts_with

my $bool = $string->starts_with($prefix);

Test whether the String starts with prefix.

ends_with

my $bool = $string->ends_with($suffix);

Test whether the String ends with suffix.

contains

my $bool = $string->contains($substring);

Test whether the String contains substring.

find

my $string_iterator = $string->find($substring);

Return a StringIterator pointing to the first occurrence of substring within the String, or undef if the substring does not match.

length

my $int = $string->length();

Return the number of Unicode code points the String contains.

get_size

my $int = $string->get_size();

Return the number of bytes occupied by the String’s internal content.

to_bytebuf

my $byte_buf = $string->to_bytebuf();

Return a ByteBuf which holds a copy of the String.

clone

my $result = $string->clone();

Return a clone of the object.

compare_to

my $int = $string->compare_to($other);

Indicate whether one String is less than, equal to, or greater than another. The Unicode code points of the Strings are compared lexicographically. Throws an exception if other is not a String.

Returns: 0 if the Strings are equal, a negative number if self is less than other, and a positive number if self is greater than other.

trim

my $result = $string->trim();

Return a copy of the String with Unicode whitespace characters removed from both top and tail. Whitespace is any character that has the Unicode property White_Space.

trim_top

my $result = $string->trim_top();

Return a copy of the String with leading Unicode whitespace removed. Whitespace is any character that has the Unicode property White_Space.

trim_tail

my $result = $string->trim_tail();

Return a copy of the String with trailing Unicode whitespace removed. Whitespace is any character that has the Unicode property White_Space.

code_point_at

my $int = $string->code_point_at($tick);

Return the Unicode code point located tick code points in from the top. Return CFISH_STR_OOB if out of bounds.

code_point_from

my $int = $string->code_point_from($tick);

Return the Unicode code point located tick code points counting backwards from the end. Return CFISH_STR_OOB if out of bounds.

substring

my $result = $string->substring(
    offset => $offset,  # required
    length => $length,  # required
);

Return a new substring containing a copy of the specified range.

  • offset - Offset from the top, in code points.

  • length - The desired length of the substring, in code points.

top

my $string_iterator = $string->top();

Return an iterator initialized to the start of the string.

tail

my $string_iterator = $string->tail();

Return an iterator initialized to the end of the string.

INHERITANCE

Clownfish::String isa Clownfish::Obj.