File Coverage

blib/lib/CBOR/Free/Decoder/Base.pm
Criterion Covered Total %
statement 14 14 100.0
branch 6 6 100.0
condition 3 3 100.0
subroutine 3 3 100.0
pod 0 1 0.0
total 26 27 96.3


line stmt bran cond sub pod time code
1             package CBOR::Free::Decoder::Base;
2              
3 7     7   3069 use strict;
  7         17  
  7         202  
4 7     7   39 use warnings;
  7         14  
  7         1385  
5              
6             sub set_tag_handlers {
7 106     106 0 71956 my ($self, @tag_kv) = @_;
8              
9 106 100       357 die "Uneven tag handlers list given!" if @tag_kv % 2;
10              
11 105         208 my @tag_kv_copy = @tag_kv;
12              
13 105         473 while ( my ($tag, $cr) = splice @tag_kv ) {
14 105 100       638 die "Invalid tag: $tag" if $tag !~ m<\A[0-9]+\z>;
15 104 100 100     715 die "Invalid tag $tag handler: $cr" if defined($cr) && !UNIVERSAL::isa($cr, 'CODE');
16             }
17              
18 103         472 $self->_set_tag_handlers_backend(@tag_kv_copy);
19              
20 103         238 return $self;
21             }
22              
23             1;