package String::Eertree::Node; use Moo; has length => (is => 'ro', required => 1); has pos => (is => 'rwp', required => 1); has link => (is => 'rwp'); has edge => (is => 'lazy', predicate => 1, builder => sub { {} }, ); has count => (is => 'rwp', default => 1); has step_tally => (is => 'rwp', default => 1); sub increment_count { my ($self, $count) = @_; $self->_set_count(($count // 1) + $self->count); } sub string { my ($self, $eertree) = @_; return substr $eertree->string, $self->pos, $self->length } =head1 NAME String::Eertree::Node - Represents a single node in a String::Eertree =head1 VERSION Version 0.02 =cut our $VERSION = '0.02'; =head1 SYNOPSIS You can study the implementation if you're interested in how eertrees work. Otherwise, just use C. =cut __PACKAGE__