# ***********************************************
# 
# !!!! DO NOT EDIT !!!!
# 
# This file was auto-generated by Build.PL.
# 
# ***********************************************
# 
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
# 
#     http://www.apache.org/licenses/LICENSE-2.0
# 
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

=encoding utf8

=head1 NAME

Lucy::Search::Span - An offset, a length, and a weight.

=head1 SYNOPSIS

    my $combined_length = $upper_span->get_length
        + ( $upper_span->get_offset - $lower_span->get_offset );
    my $combined_span = Lucy::Search::Span->new(
        offset => $lower_span->get_offset,
        length => $combined_length,
    );
    ...

=head1 DESCRIPTION

Span objects store information about a span across an array of…
something. The unit is context-dependent.

Text is one possibility, in which case offset and length might be measured
in Unicode code points.  However, the Span could also refer to a span
within an array of tokens, for example – in which case the start and
offset might be measured in token positions.

=head1 CONSTRUCTORS

=head2 new

    my $span = Lucy::Search::Span->new(
        offset => 75,     # required
        length => 7,      # required
        weight => 1.0,    # default 0.0
    );

Create a new Span.

=over

=item *

B<offset> - Integer offset, unit is context-dependent.

=item *

B<length> - Integer length, unit is context-dependent.

=item *

B<weight> - A floating point weight.

=back

=head1 METHODS

=head2 get_offset

    my $int = $span->get_offset();

Accessor for C<offset> attribute.

=head2 set_offset

    $span->set_offset($offset);

Setter for C<offset> attribute.

=head2 get_length

    my $int = $span->get_length();

Accessor for C<length> attribute.

=head2 set_length

    $span->set_length($length);

Setter for C<length> attribute.

=head2 get_weight

    my $float = $span->get_weight();

Accessor for C<weight> attribute.

=head2 set_weight

    $span->set_weight($weight);

Setter for C<weight> attribute.

=head2 compare_to

    my $int = $span->compare_to($other);

Indicate whether one object is less than, equal to, or greater than
another.

=over

=item *

B<other> - Another Obj.

=back

Returns: 0 if the objects are equal, a negative number if
C<self> is less than C<other>, and a positive
number if C<self> is greater than C<other>.

=head1 INHERITANCE

Lucy::Search::Span isa Clownfish::Obj.

=cut

