NAME

Attean::ListIterator - Iterator implementation backed by a list/array of values

VERSION

This document describes Attean::ListIterator version 0.023

SYNOPSIS

  use v5.14;
  use Attean;
  my @values = map { Attean::Literal->new($_) } (1,2,3);
  my $iter = Attean::ListIterator->new(
    values => \@values,
    item_type => 'Attean::API::Term',
  );
  
  say $iter->next->value; # 1
  say $iter->next->value; # 2
  say $iter->next->value; # 3

DESCRIPTION

The Attean::ListIterator class represents a typed iterator. It conforms to the Attean::API::RepeatableIterator role.

The Attean::ListIterator constructor requires two named arguments:

values

An array reference containing the items to iterate over.

item_type

A string representing the type of the items that will be returned from the iterator.

METHODS

reset

Resets the iterator's internal state so that iteration begins again at the beginning of the values array.

next

Returns the iterator's next item, or undef upon reaching the end of iteration.

size

Returns the number of elements still remaining in the iterator until it is fully consumed or until reset is called.

BUGS

Please report any bugs or feature requests to through the GitHub web interface at https://github.com/kasei/attean/issues.

SEE ALSO

AUTHOR

Gregory Todd Williams <gwilliams@cpan.org>

COPYRIGHT

Copyright (c) 2014--2019 Gregory Todd Williams. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.