NAME

Clownfish::StringIterator - Iterate Unicode code points in a String.

SYNOPSIS

my $iter = $string->top;
while (my $code_point = $iter->next) {
    ...
}

DESCRIPTION

METHODS

clone

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

Return a clone of the object.

assign

$string_iterator->assign($other);

Assign the source string and current position of other to self.

compare_to

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

Indicate whether one StringIterator is less than, equal to, or greater than another by comparing their character positions. Throws an exception if other is not a StringIterator pointing to the same source string as self.

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

has_next

my $bool = $string_iterator->has_next();

Return true if the iterator is not at the end of the string.

has_prev

my $bool = $string_iterator->has_prev();

Return true if the iterator is not at the start of the string.

next

my $code_point = $iter->next;

Return the code point after the current position and advance the iterator. Returns undef at the end of the string. Returns zero but true for U+0000.

prev

my $code_point = $iter->prev;

Return the code point before the current position and go one step back. Returns undef at the start of the string. Returns zero but true for U+0000.

advance

my $int = $string_iterator->advance($num);

Skip code points.

  • num - The number of code points to skip.

Returns: the number of code points actually skipped. This can be less than the requested number if the end of the string is reached.

recede

my $int = $string_iterator->recede($num);

Skip code points backward.

  • num - The number of code points to skip.

Returns: the number of code points actually skipped. This can be less than the requested number if the start of the string is reached.

skip_whitespace

my $int = $string_iterator->skip_whitespace();

Skip whitespace. Whitespace is any character that has the Unicode property White_Space.

Returns: the number of code points skipped.

skip_whitespace_back

my $int = $string_iterator->skip_whitespace_back();

Skip whitespace backward. Whitespace is any character that has the Unicode property White_Space.

Returns: the number of code points skipped.

starts_with

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

Test whether the content after the iterator starts with prefix.

ends_with

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

Test whether the content before the iterator ends with suffix.

INHERITANCE

Clownfish::StringIterator isa Clownfish::Obj.