summaryrefslogtreecommitdiff
path: root/lib/Data/MultiValued/TagContainerForRanges.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Data/MultiValued/TagContainerForRanges.pm')
-rw-r--r--lib/Data/MultiValued/TagContainerForRanges.pm39
1 files changed, 39 insertions, 0 deletions
diff --git a/lib/Data/MultiValued/TagContainerForRanges.pm b/lib/Data/MultiValued/TagContainerForRanges.pm
index 604dcb7..826df9d 100644
--- a/lib/Data/MultiValued/TagContainerForRanges.pm
+++ b/lib/Data/MultiValued/TagContainerForRanges.pm
@@ -4,6 +4,21 @@ use MooseX::Types::Moose qw(HashRef);
use Moose::Util::TypeConstraints;
use Data::MultiValued::RangeContainer;
+# ABSTRACT: container for tagged values that are ranged containers
+
+=head1 DESCRIPTION
+
+Please don't use this module directly, use
+L<Data::MultiValued::TagsAndRanges>.
+
+This module is a subclass of L<Data::MultiValued::TagContainer>, which
+only allows instances of L<Data::MultiValued::RangeContainer> as
+"storage cells".
+
+=head1 METHODS
+
+=cut
+
extends 'Data::MultiValued::TagContainer';
has '+_storage' => (
@@ -14,10 +29,27 @@ has '+_default_tag' => (
isa => class_type('Data::MultiValued::RangeContainer'),
);
+=head2 C<_create_new_inferior>
+
+Returns a new L<Data::MultiValued::RangeContainer> instance.
+
+=cut
+
sub _create_new_inferior {
Data::MultiValued::RangeContainer->new();
}
+=head1 Serialisation helpers
+
+These are used through
+L<Data::MultiValued::UglySerializationHelperRole>.
+
+=head2 C<_rebless_storage>
+
+Blesses the "storage cells" into L<Data::MultiValued::RangeContainer>.
+
+=cut
+
sub _rebless_storage {
my ($self) = @_;
bless $_,'Data::MultiValued::RangeContainer'
@@ -26,6 +58,13 @@ sub _rebless_storage {
return;
}
+=head2 C<_as_hash>
+
+Returns the internal representation with no blessed hashes, with as
+few copies as possible.
+
+=cut
+
sub _as_hash {
my ($self) = @_;
my %st;