package KinoSearch::Index::TermEnum;
use strict;
use warnings;
use KinoSearch::Util::ToolSet;
use base qw( KinoSearch::Util::Class );

our %instance_vars = __PACKAGE__->init_instance_vars();

=begin comment


Locate the Enum to a particular spot.

=end comment

sub seek { shift->abstract_death }

=begin comment

    my $evil_twin = $term_enum->clone_enum;

Return a dupe, in the same state as the orig.

=end comment

sub clone_enum { shift->abstract_death }

=begin comment

    my $not_end_of_enum_yet = $term_enum->next;

Proceed to the next term.  Return true until we fall off the end of the Enum,
then return false.

=end comment

sub next { shift->abstract_death }

sub skip_to { shift->todo_death }

=begin comment

    my $termstring = $term_enum->get_termstring;

Return a termstring, if the Enum is in a state where it's valid to do so.
Otherwise, return undef.

=end comment

sub get_termstring { shift->abstract_death }

sub get_terminfo       { shift->abstract_death }
sub get_index_interval { shift->abstract_death }
sub get_size           { shift->abstract_death }

sub close { shift->abstract_death }



=begin devdocs

=head1 NAME

KinoSearch::Index::TermEnum - scan through a list of Terms


    # abstract base class


Conceptually, a TermEnum is a array of Term => TermInfo pairs, sorted
lexically by term field name, then term text.  The implementations in
KinoSearch solve the same problem that tied arrays solve: it is possible to
iterate through the array while loading as little as possible into memory.


Copyright 2005-2006 Marvin Humphrey


See L<KinoSearch|KinoSearch> version 0.08.

=end devdocs