package Heap::Simple::XS;
use strict;
# use warnings;
use vars qw($VERSION);
$VERSION = "0.10";
require XSLoader;
XSLoader::load('Heap::Simple::XS', $VERSION);
sub implementation() {
return __PACKAGE__;
}
1;
__END__
=head1 NAME
Heap::Simple::XS - An XS implementation of the Heap::Simple interface
=head1 SYNOPSIS
# Let Heap::Simple decide which implementation that provides its interface
# it will load and use. This may be Heap::Simple::XS or it may not be.
# Still, this is the normal way of using Heap::Simple
use Heap::Simple;
my $heap = Heap::Simple->new(...);
# Use heap as described in the Heap::Simple documentation
# If for some reason you insist on using this version:
use Heap::Simple::XS;
my $heap = Heap::Simple::XS->new(...);
# Use the XS heap as described in the Heap::Simple documentation
=head1 DESCRIPTION
This module provides an XS implementation of the interface described
in L. Look there for a description.
=head1 NOTES
=over
=item
Even though this implementation is written in C, it fully supports
overloading and magic (like L).
=item
The dirty option will do several things.
=over 4
=item
It will cause scalars for the C> and C> orders
to be stored internally as an NV (double or long double). This means you lose
magic, overload and any internal integer representation.
=item
The C> and C> order will cause C and C elements
to get their key internally cached as an NV. So indirect changes to the value
won't be noticed anymore (but most of the time you shouldn't do that anyways).
It also means these will start behaving like a wrapped heap type, so they
return true for L and support
L and
L.
=item
The C> and C> order will cause C