Carrot

 view release on metacpan or  search on metacpan

lib/Carrot/Personality/Reflective/Iterate/Array/Cursor.pm  view on Meta::CPAN

package Carrot::Personality::Reflective::Iterate::Array::Cursor
# /type class
# /capability ""
{
	use strict;
	use warnings 'FATAL' => 'all';

	BEGIN {
		require('Carrot/Personality/Reflective/Iterate/Array/Cursor./manual_modularity.pl');
	} #BEGIN

# =--------------------------------------------------------------------------= #

sub attribute_construction
# /type method
# /effect "Constructs the attribute(s) of a newly created instance."
# //parameters
#	elements
#	cursor
# //returns
{
	my ($this, $elements, $cursor) = @ARGUMENTS;

	$this->SUPER::attribute_construction($elements);
	$this->[ATR_CURSOR] = $cursor;

	return;
}

sub _re_constructor
# /type method
# /effect "Fills an newly constructed instance with life."
# //parameters
#	cursor
# //returns
{
	my ($this, $cursor) = @ARGUMENTS;

	$this->[ATR_CURSOR] = $cursor;

	return;
}

sub reset
# /type method
# /effect ""
# //parameters
# //returns
{
	$_[THIS]->SUPER::reset;
	$_[THIS][ATR_CURSOR]->undefine;
	return;
}

sub advance
# /type method
# /effect ""
# //parameters
# //returns
#	?
{
	my ($this) = @ARGUMENTS;

	my $rv = $this->SUPER::advance;
	if ($rv)
	{
		$this->[ATR_CURSOR]->assign_value(
			$this->[ATR_ELEMENTS][$this->[ATR_POSITION]]);
	}
	return($rv);
}

sub current_element
# /type method
# /effect ""
# //parameters
# //returns
#	?
{
	return($_[THIS][ATR_CURSOR]);
}

sub current_index_n_element
# /type method
# /effect ""
# //parameters
# //returns
#	?
{
	return($_[THIS][ATR_POSITION], $_[THIS][ATR_CURSOR]);
}

# =--------------------------------------------------------------------------= #

	return(PERL_FILE_LOADED);
}
# //revision_control
#	version 1.1.112
#	branch main



( run in 1.812 second using v1.01-cache-2.11-cpan-d8267643d1d )