Provided by: libattean-perl_0.033-1_all bug

NAME

       Attean::API::Iterator - Typed iterator

VERSION

       This document describes Attean::API::Iterator version 0.033

DESCRIPTION

       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.

ATTRIBUTES

       The following attributes exist:

       "item_type"
           A string indicating the type of elements returned by the iterator.

REQUIRED METHODS

       The following methods are required by the Attean::API::Iterator role:

       "next"
           Returns the next element from the iterator, or "undef" upon exhaustion.

METHODS

       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.

   Methods on Roles Supporting Stringification
       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).

BUGS

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

SEE ALSO

       Attean::API::RepeatableIterator

AUTHOR

       Gregory Todd Williams  "<gwilliams@cpan.org>"

COPYRIGHT

       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.

perl v5.36.0                                       2022-10-06                         Attean::API::Iterator(3pm)