Attean::API::Iterator - Typed iterator
This document describes Attean::API::Iterator version 0.033
The Attean::API::Iterator role defines a common API for typed
iterators. This package also defines several type-specific iterator
roles:
- Attean::API::TripleIterator
- Attean::API::QuadIterator
- Attean::API::MixedStatementIterator
- Attean::API::ResultIterator
These roles will automatically be applied to iterators during
construction when appropriate.
The following attributes exist:
- "item_type"
- A string indicating the type of elements returned by the iterator.
The following methods are required by the Attean::API::Iterator
role:
- "next"
- Returns the next element from the iterator, or
"undef" upon exhaustion.
The Attean::API::Iterator role provides default implementations of
the following methods:
- "elements"
- Returns a list of all remaining elements in the iterator.
- "map( \&mapper [, $result_type] )"
- Returns a new Attean::API::Iterator object with each element mapped using
the supplied &mapper function. If the iterator
elements are of the same type as those in the referent iterator, only a
mapping function is required. Otherwise, the supplied Type::Tiny
$result_type object must indicate the new
iterator's type information.
- "grep( \&filter )"
- Returns a new Attean::API::Iterator object that filters elements from the
referent iterator based on whether calling
"&filter( $element )" for each
$element results in a true value.
- "offset( $offset )"
- Returns the Attean::API::Iterator referent after skipping the first
$offset elements.
- "limit( $limit )"
- Returns a new Attean::API::Iterator object which returns the first
$limit elements of the referent.
- "materialize"
- Returns a new Attean::API::RepeatableIterator object containing all the
elements from the referent.
- "debug( [$name] )"
- Print each item as it is consumed (with the string generated by
"as_string"), prepended by
$name.
For iterators over roles that provide an
"as_string" method, extra methods are
provided. These iterators are:
Attean::API::ResultOrTermIterator Attean::API::StatementIterator
Attean::API::MixedStatementIterator Attean::API::ResultIterator
Attean::API::TermIterator
They provide the following methods:
- "uniq"
- Returns a new iterator providing unique results (based on the stringified
value of the underlying elements).
Please report any bugs or feature requests to through the GitHub
web interface at <https://github.com/kasei/attean/issues>.
Attean::API::RepeatableIterator
Gregory Todd Williams
"<gwilliams@cpan.org>"
Copyright (c) 2014--2022 Gregory Todd Williams. This program is
free software; you can redistribute it and/or modify it under the same terms
as Perl itself.